Python 将值较少的行添加到数据帧
给出一个数据帧示例:Python 将值较少的行添加到数据帧,python,pandas,dataframe,sum,row,Python,Pandas,Dataframe,Sum,Row,给出一个数据帧示例: import pandas as pd import numpy as np values = np.array([ [0, 0.5, 1, 0, 0, 3], [1, 0, 0, 1, 1, 0 ], [0, 0.5, 0, 0, 2, 1], [0, 0, 0, 0, 4, 0], ]) indexes= 'a','b','c','d' columns='ab','bc','cd','de','ef','fg'
import pandas as pd
import numpy as np
values = np.array([
[0, 0.5, 1, 0, 0, 3],
[1, 0, 0, 1, 1, 0 ],
[0, 0.5, 0, 0, 2, 1],
[0, 0, 0, 0, 4, 0],
])
indexes= 'a','b','c','d'
columns='ab','bc','cd','de','ef','fg'
df = pd.DataFrame(index=indexes,columns=columns, data=values)
print(df)
这看起来像:
ab bc cd de ef fg
a 0.0 0.5 1.0 0.0 0.0 3.0
b 1.0 0.0 0.0 1.0 1.0 0.0
c 0.0 0.5 0.0 0.0 2.0 1.0
d 0.0 0.0 0.0 0.0 4.0 0.0
期望输出:
ab bc cd de ef fg
a 0.0 0.5 1.0 0.0 0.0 3.0
b 1.0 0.0 0.0 1.0 1.0 0.0
c 0.0 0.5 0.0 0.0 2.0 1.0
d 0.0 0.0 0.0 0.0 4.0 0.0
e Nan Nan Nan NAn 7.0 4.0
是否可以添加一行,其中只显示最后两列的总和?(当然,在各栏下方)
谢谢你的关注 编辑:哦。谢谢你的澄清。创建一个新行,并将最后两列的总和指定给它。
iloc
索引器的格式为[行,列]。因此,我们需要:
所有行,但只需要最后两列-2:
df.loc['e'] = df.iloc[:,-2:].sum()
结果:
>>> df
ab bc cd de ef fg
a 0.0 0.5 1.0 0.0 0.0 3.0
b 1.0 0.0 0.0 1.0 1.0 0.0
c 0.0 0.5 0.0 0.0 2.0 1.0
d 0.0 0.0 0.0 0.0 4.0 0.0
e NaN NaN NaN NaN 7.0 4.0
>>> pd.concat([df,df.iloc[-2,:] + df.iloc[-1:]])
ab bc cd de ef fg
a 0.0 0.5 1.0 0.0 0.0 3.0
b 1.0 0.0 0.0 1.0 1.0 0.0
c 0.0 0.5 0.0 0.0 2.0 1.0
d 0.0 0.0 0.0 0.0 4.0 0.0
d 0.0 0.5 0.0 0.0 6.0 1.0
旧答案:
我想你指的是最后两排 你可以在这里用 结果:
>>> df
ab bc cd de ef fg
a 0.0 0.5 1.0 0.0 0.0 3.0
b 1.0 0.0 0.0 1.0 1.0 0.0
c 0.0 0.5 0.0 0.0 2.0 1.0
d 0.0 0.0 0.0 0.0 4.0 0.0
e NaN NaN NaN NaN 7.0 4.0
>>> pd.concat([df,df.iloc[-2,:] + df.iloc[-1:]])
ab bc cd de ef fg
a 0.0 0.5 1.0 0.0 0.0 3.0
b 1.0 0.0 0.0 1.0 1.0 0.0
c 0.0 0.5 0.0 0.0 2.0 1.0
d 0.0 0.0 0.0 0.0 4.0 0.0
d 0.0 0.5 0.0 0.0 6.0 1.0
你可以使用loc
df.loc['sum_c_d'] = df[-2:].sum()
ab bc cd de ef fg
a 0 0.5 1 0 0 3
b 1 0.0 0 1 1 0
c 0 0.5 0 0 2 1
d 0 0.0 0 0 4 0
sum_c_d 0 0.5 0 0 6 1
最后两列还是最后两行?也许会给出您想要的输出。好的一点,@Psidom…对不起,我的意思是我想添加一行,在那里我显示最后一列的值的和(在第二列下面),和最后一列的值的和(在最后一列下面)。保持行的其他单元格为空。希望现在清楚!你能以表格的形式给出你想要的输出吗?我已经添加了想要的输出,我输入了Nan,但我希望这些单元格完全为空,但我想这是不可能的…@Paauulus:不客气。很高兴见到你。