我有两只Pandas的数据框,说:
df1 = pd.DataFrame({"Type": [A, A, B, B, C], "data": [1,2,3,4,5]})
Type data
0 A 1
1 A 2
2 B 3
3 B 4
4 C 5
df2 = pd.DataFrame({"Type": [A, B, C]})
Type
0 A
1 B
2 C
我想将一列与df2
相邻,比如“Value”,这样Value中的每个单元格都有df1["Col2"]
中属于同一类型的所有元素的总和。
对于此特定示例,所需输出如下所示:
Type data
0 A 3
1 B 7
2 C 5
我很想为df2["Type"]
中的每个x
使用一个while
,然后添加所有df1[df1["Type"] == x]["data"]
,但这似乎不像是正确的形式。
我怎样才能达到这个理想的输出?
3条答案
按热度按时间jxct1oxe1#
您的方法将取决于df1和df2中的内容。
假设类型A、B和C是唯一可用的类型,您可以使用一个简单的groupby函数来接收每种类型的总和。
如果df1具有df2没有的类型(反之亦然),则可以对两个 Dataframe 执行merge操作,然后对合并后的 Dataframe 使用groupby函数。
一个二个一个一个
jq6vz3qz2#
按
Type
列合并分组:vojdkbi03#