我可以对 5 列 pandas 数据框中的前 310 行求和,并使用以下方法获得整洁的摘要:
df.[0:310].sum
有没有一种简单的方法可以让我对我选择的特定列中的前 310 行求和?我只是不知道如何在表达式中组合列选择和行切片选择。最好按列名指定列,但列索引也可以。
为了对第 5 列的前 310 行求和,我尝试了
df.iloc[0:310, 4].sum
但只打印了该列的 310 行。谢谢。
最佳答案
我认为需要DataFrame.iloc
按位置选择行 get_indexer
按名称列的位置:
#data borrowed from Akshay Nevrekar answer, but changed index values
data = {'x':[1,2,3,4,5],
'y':[2,5,7,9,11],
'z':[2,6,7,3,4]}
df=pd.DataFrame(data, index=list('abcde'))
print (df)
x y z
a 1 2 2
b 2 5 6
c 3 7 7
d 4 9 3
e 5 11 4
a = df.iloc[:3, df.columns.get_indexer(['x','z'])].sum()
什么是相同的:
a = df.iloc[:3, [0,2]].sum()
print (a)
x 6
z 15
dtype: int64
详细信息:
print (df.iloc[:3, df.columns.get_indexer(['x','z'])])
x z
a 1 2
b 2 6
c 3 7
如果只需要一列,请使用 get_loc
职位:
b = df.iloc[:3, df.columns.get_loc('x')].sum()
什么是相同的:
b = df.iloc[:3, 0].sum()
print (b)
6
详细信息:
print (df.iloc[:3, df.columns.get_loc('x')])
a 1
b 2
c 3
Name: x, dtype: int64
关于python - 仅对 pandas 数据框的给定列中的某些行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49313924/