我的 df1 看起來像這樣:
STATE YEAR EVENT_TYPE DAMAGE
ALABAMA 1962 Tornado 27
ALABAMA 1962 Flood 7
ALABAMA 1963 Thunderstorm 12
...
和 df2 看起來像這樣:
STATE YEAR TORNADO THUNDERSTORM FLOOD
ALABAMA 1962 NaN NaN NaN
ALABAMA 1963 NaN NaN NaN
...
我想將這兩個資料幀合并在一起,所以最終輸出如下所示:
STATE YEAR TORNADO THUNDERSTORM FLOOD
ALABAMA 1962 27 NaN 7
...
很難弄清楚如何做到這一點。
uj5u.com熱心網友回復:
連接兩個資料幀。
pd.concat([df1, df2], axis=0)
連接兩個資料幀并將 nan 替換為 0 或您想要的任何值。
pd.concat([df1, df2], axis=0).df.fillna(0)
uj5u.com熱心網友回復:
merge旋轉的df1:
cols = ['STATE', 'YEAR']
out = df2[cols].merge(df1.pivot(index=cols, columns='EVENT_TYPE', values='DAMAGE'),
left_on=cols, right_index=True)
uj5u.com熱心網友回復:
您可以使用df1.update(df2)以避免NaN位置(如果可能):
import pandas as pd
import numpy as np
NaN = np.nan
df1 = pd.DataFrame([[1,2 ],[3,NaN],[NaN,NaN]], columns = ('X','Y'))
df2 = pd.DataFrame([[1,NaN],[3,4 ],[NaN,6 ]], columns = ('X','Y'))
df1.update(df2)
print(df1)
# output
# X Y
# 0 1.0 2.0
# 1 3.0 4.0
# 2 NaN 6.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/531549.html
標籤:Python熊猫代替合并
