[英]Pandas Combine dataframes different indices
我有兩個具有不同索引和列的數據df_1
和df_2
。 但是,有些索引和列重疊。
我用索引和列的並集創建了一個數據框df
:因此,這里沒有重復的索引或列。
我想通過以下方式填充數據框df
:
for x in df.index:
for y in df.columns:
df.loc[x,y] = df_1.loc[x,y] if (x,y) in (df_1.index,df_1.columns) else df_2.loc[x,y]
誰能告訴我這樣做的有效方法?
謝謝!
我認為您需要DataFrame.combine_first
:
df_1 = pd.DataFrame({'A':[1,2,3],
'E':[4,5,6],
'V':[7,8,9],
'D':[1,3,5]},
index=pd.to_datetime(['2017-01-05', '2017-01-04', '2017-01-01']))
print (df_1)
A D E V
2017-01-05 1 1 4 7
2017-01-04 2 3 5 8
2017-01-01 3 5 6 9
df_2 = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'C':[7,8,9]}, index=pd.date_range('2017-01-01', periods=3)) * 10
print (df_2)
A B C
2017-01-01 10 40 70
2017-01-02 20 50 80
2017-01-03 30 60 90
df = df_1.combine_first(df_2)
print (df)
A B C D E V
2017-01-01 3.0 40.0 70.0 5.0 6.0 9.0
2017-01-02 20.0 50.0 80.0 NaN NaN NaN
2017-01-03 30.0 60.0 90.0 NaN NaN NaN
2017-01-04 2.0 NaN NaN 3.0 5.0 8.0
2017-01-05 1.0 NaN NaN 1.0 4.0 7.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.