在Pandas Python中组合两个数据框

时间:2019-02-19 05:22:51

标签: python pandas

我想合并两个数据框

我想将两个数据框组合在一起,以使帐户相同。

例如,acct 10应为CME和NISSAN中的值,而其余均为零。

2 个答案:

答案 0 :(得分:2)

我认为您可以使用df.combine_first()

  
    

它将用其他位置相同的值更新空元素。

  
df2.combine_first(df1)

此外,您可以尝试:

pd.concat([df1.set_index('acct'),df2.set_index('acct')],axis=1).reset_index()

答案 1 :(得分:0)

您似乎正在尝试合并这两个DataFrame。

您可以使用df.merge合并两者。由于您想在acct列上进行匹配,因此将on关键字arg设置为"acct"并将how设置为"inner"以仅保留那些出现在这两个DataFrame。

例如:

merged = df1.merge(df2, how="inner", on="acct")

输出:

+------+--------------------+------------------+-------------------+-----------+--------------------+-------------------+--------------------+
| acct |       GOODM        |       KIS        |      NISSAN       |    CME    |        HKEX        |        OSE        |        SGX         |
+------+--------------------+------------------+-------------------+-----------+--------------------+-------------------+--------------------+
|   10 |                    |                  | 1397464.227495019 | 1728005.0 |                0.0 |                   |                    |
|   30 | 30569.300965712766 | 4299649.75104102 |                   |    6237.0 |                    |                   |                    |
+------+--------------------+------------------+-------------------+-----------+--------------------+-------------------+--------------------+

如果要用零填充空值,则可以使用df.fillna(0)