我想合并两个数据框
我想将两个数据框组合在一起,以使帐户相同。
例如,acct 10应为CME和NISSAN中的值,而其余均为零。
答案 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)
。