可以使用pandas的merge函数将两个DataFrame合并,然后使用groupby函数按照另一个DataFrame中的列进行分组,并使用sum函数求和。
以下是一个示例代码:
import pandas as pd
# 创建两个DataFrame
df1 = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'two', 'one', 'two'],
'C': [1, 2, 3, 4, 5, 6, 7, 8]})
df2 = pd.DataFrame({'B': ['one', 'two', 'two'],
'D': [10, 20, 30]})
# 合并两个DataFrame
merged_df = pd.merge(df1, df2, on='B', how='left')
# 按照另一个DataFrame中的列进行分组求和
grouped_df = merged_df.groupby(['A', 'B'])['C'].sum()
print(grouped_df)
输出结果为:
A B
bar one 2
two 10
foo one 8
two 14
Name: C, dtype: int64
在这个示例中,我们按照df2中的列B对df1中的行进行分组,并对分组后的每个组的列C求和。