Nab*_*zir 2 python dataframe pandas
这是我的数据
df
No Name Address English History Math Physics Chemistry Biology
1 Arthur New York 80 65 100 89 92 94
2 Barthur New Mexico 70 60 94 83 82 95
Run Code Online (Sandbox Code Playgroud)
我做的是
df['Science'] = df['Math'] + df['Physics'] + df['Chemistry'] + df['Biology']
我的问题是,实际的数据超过900列,我该如何更换df['Math'] + df['Physics'] + df['Chemistry'] + df['Biology'],从总结df['Math']到df['Biology'](按范围)
我希望这个问题足够清楚
我认为您需要iloc按职位选择:
df['sum'] = df.iloc[:, 3:].sum(axis=1)
Run Code Online (Sandbox Code Playgroud)
或者删除不需要的数字列:
df['sum'] = df.drop('No', axis=1).sum(axis=1)
Run Code Online (Sandbox Code Playgroud)
print (df)
No Name Address English History Math Physics Chemistry \
0 1 Arthur New York 80 65 100 89 92
1 2 Barthur New Mexico 70 60 94 83 82
Biology sum
0 94 520
1 95 484
Run Code Online (Sandbox Code Playgroud)
编辑:
如果只需要所有列5到最后:
print (df.iloc[:, 5:])
Math Physics Chemistry Biology
0 100 89 92 94
1 94 83 82 95
print (df.iloc[:, 3:5])
English History
0 80 65
1 70 60
df['A'] = df.iloc[:, 3:5].sum(axis=1)
df['Science'] = df.iloc[:, 5:].sum(axis=1)
print (df)
No Name Address English History Math Physics Chemistry \
0 1 Arthur New York 80 65 100 89 92
1 2 Barthur New Mexico 70 60 94 83 82
Biology A Science
0 94 145 520
1 95 130 484
Run Code Online (Sandbox Code Playgroud)