2024-04-19 17:00:41 发布
网友
我有一个具有以下初始化的数据帧,我想知道列“a”中的值是否存在于列“b”中。然后,如果值存在,我需要列“c”的所有相应值的总和。你知道吗
不适用
df = pd.DataFrame({'a': [1,2,3, 1, 4, 1, 2], 'b': [1,5,1, 2, 3, 1, 3], 'c': [10,20,40, 50, 60, 70, 100]})
示例结果位于下面的图像链接中:
df[['a','b']].join(df.groupby('b').c.sum(),on='a').fillna(0, downcast='infer')
或者
df.groupby('b').c.sum().reindex(df.a,fill_value=0).reset_index().assign(b=df.b).sort_index(axis=1)
df.assign(c = df.groupby('b').c.sum().reindex(df.a, fill_value=0).reset_index(drop=True))
看看下面的一行:D
df[["a"]].merge(df.groupby("b").c.sum().reset_index().rename(columns={"b":"a"}), how="left").fillna(0)
只要b中的值存在于a中,这将对b中每个值的c列值求和
import pandas as pd df = pd.DataFrame({'a': [1,2,3, 1, 4, 1, 2], 'b': [1,5,1, 2, 3, 1, 3], 'c': [10,20,40, 50, 60, 70, 100]}) new_df = df[['a']].drop_duplicates().merge(df[['b', 'c']], left_on = 'a', right_on = 'b', how = 'left').groupby('a', as_index = False)['c'].sum()
或者
或者
看看下面的一行:D
只要b中的值存在于a中,这将对b中每个值的c列值求和
相关问题 更多 >
编程相关推荐