adi*_*ijo 53 python data-analysis dataframe pandas
假设我有一个这样的列:
a b
1 5
1 7
2 3
1 3
2 5
Run Code Online (Sandbox Code Playgroud)
我要总结的值b,其中a = 1,例如.这会给我5 + 7 + 3 = 15.
我怎么在熊猫里这样做?
Ale*_*ley 72
对这种任务使用布尔索引是很常见的.使用此方法,您可以找到列1等于的位置loc,然后对列的相应行求和df.您可以使用query来处理索引:
>>> df.loc[df['a'] == 1, 'b'].sum()
15
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用groupby根据列中的值将数据帧拆分为多个部分a.然后,您可以对每个部分求和,并提取1加起来的值:
df.loc[(df['a'] == 1) & (df['c'] == 2), 'b'].sum()
Run Code Online (Sandbox Code Playgroud)
该1方法比使用布尔索引慢得多,但如果要检查列中其他值的总和,则该方法很有用loc.
您也可以在不使用 groupby 或 loc 的情况下执行此操作。只需将条件包含在代码中即可。令数据框的名称为 df。那么你可以尝试:
df[df['a']==1]['b'].sum()
Run Code Online (Sandbox Code Playgroud)
或者你也可以尝试:
sum(df[df['a']==1]['b'])
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用 python 的 numpy 库:
import numpy as np
print(np.where(df['a']==1, df['b'],0).sum())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85425 次 |
| 最近记录: |