我有以下数据帧:
df=pd.DataFrame(np.random.randint(1,3,27).reshape((9,3)),\
index= [['KH','KH','KH','KH','KH','KH','KH','KH','KH'],\
['AOK','AOK','AOK','DOK','DOK','DOK','ROK','ROK','ROK'],\
['A','B','C','A','B','C','A','B','C']],\
columns=['JE','TE','DE']\
)
df.index.names = ['Deck','Status','Urs']
df
Out[116]:
JE TE DE
Deck Status Urs
KH AOK A 1 1 2
B 1 2 2
C 2 1 1
DOK A 2 2 1
B 1 2 1
C 1 2 2
ROK A 2 2 2
B 1 1 2
C 1 2 1
现在我只想在它后面附加一列'JErel'
。此列应包含来自'JE'
的值,但作为相对分数。分数应该与'Status'
索引组的总和有关
我可以通过以下方式获取金额:
df.loc[('KH','AOK')]['JE'].sum()
Out[117]: 4
列的结果应类似于:
1/df.loc[('KH','AOK')]['JE'].sum(),
1/df.loc[('KH','AOK')]['JE'].sum(),
2/df.loc[('KH','AOK')]['JE'].sum() and then,
2/df.loc[('KH','DOK')]['JE'].sum(), ...
,,,, 我就这么走了
如何像apply(Lambda...)
那样动态添加列
您可以使用
groupby.transform
计算与原始数据帧具有相同长度和索引的列JE和,然后将JE列除以它:相关问题 更多 >
编程相关推荐