在Pandas中添加值时组合数据帧

时间:2014-05-06 18:42:32

标签: python pandas

Pandas的新手,并且看起来很简单。我已经尝试了各种合并和连接命令,但还没有找到合适的命令。

有两个看起来像这样的dfs:

        newstatus  count()
0       field1     1
1       field2     7
2       field3     146
3       field4     94
[4 rows x 2 columns]


        newstatus  count()
0       field2     1
1       field3     32
2       field4     60
[3 rows x 2 columns]

组合它们并添加count()字段以获得最有效的操作是什么:

        newstatus  count()
0       field1     1
1       field2     8
2       field3     178
3       field4     154
[4 rows x 2 columns]

请注意,dfs不一定具有每个字段的值,即field1根本不会显示在第二个df中。

1 个答案:

答案 0 :(得分:2)

不确定这是否是效率最高的,但我认为这是最直接的:

>>> d1.set_index('newstatus').add(d2.set_index('newstatus'), fill_value=0).reset_index()
  newstatus  count
0    field1      1
1    field2      8
2    field3    178
3    field4    154

[4 rows x 2 columns]

稍微有点尴尬因为你有newstatus作为列而不是索引。如果您使用newstatus作为索引来设置数据,请执行以下操作:

           count
newstatus       
field1         1
field2         7
field3       146
field4        94

然后你可以做

>>> d1.add(d2, fill_value=0)
           count
newstatus       
field1         1
field2         8
field3       178
field4       154