Python 熊猫将数据帧与不同的索引相结合
我有两个数据帧Python 熊猫将数据帧与不同的索引相结合,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧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] 有人能告诉我一个有效的方法吗 谢谢 我认为您需要: 太神
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]
有人能告诉我一个有效的方法吗
谢谢 我认为您需要:
太神了索引和列是否自动排序?因为我的索引是日期索引。我想是的,但不是100%确定,所以如果不添加
.sort\u index()
。我测试它,它会很好地排序datetimeindex。我也用它来改变样品。
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