如何通过添加过滤后的行在python数据框中创建新列

时间:2019-08-28 13:56:11

标签: python pandas dataframe calculated-columns

我有一个像这样的python数据框:

df = pd.DataFrame({'a':[1, 2, 1], 'b':[2, 3, 5]})
df
>>>    a  b
>>> 0  1  2
>>> 1  2  3
>>> 2  1  5

我希望新列'c'的所有'a'都加起来:

>>>    a  b  c
>>> 0  1  2  7
>>> 1  2  3  3
>>> 2  1  5  7

这种for循环可以做到:

for i in range(len(df)):
    df.loc[i, 'c'] = df[df['a']==df.loc[i, 'a']]['b'].sum()
df
>>>    a  b    c
>>> 0  1  2  7.0
>>> 1  2  3  3.0
>>> 2  1  5  7.0

但是我认为应该有更快,更优雅的方式。

0 个答案:

没有答案