所以我有两个数据帧,一个是数据帧字典stocks['OPK']
的单个数据帧,另一个只是一个简单的Pandas数据帧df
。
这是 df 的一个切片,df.loc['2010-01-04':, 'Open']
我有兴趣与其他数据帧进行比较。
Date Open
2010-01-04 1.80
2010-01-05 1.64
2010-01-06 1.90
2010-01-07 1.79
2010-01-08 1.92
2010-01-11 1.90
2010-01-12 1.89
2010-01-13 1.82
2010-01-14 1.84
2010-01-15 1.85
2010-01-19 1.77
这是另一个数据框stocks['OPK'].Open
2010-01-04 1.80
2010-01-05 1.64
2010-01-06 NaN
2010-01-07 1.79
2010-01-08 NaN
2010-01-11 1.90
2010-01-12 1.89
2010-01-13 1.82
2010-01-14 NaN
2010-01-15 1.85
2010-01-19 NaN
正如您所知,第二个数据帧缺少值。
由于两个索引都是日期时间格式,我希望能够将 stock['OPK'].Open
与 df.loc['2010-01-04' 进行比较: , 'Open']
并使用第一个数据帧 df
我可以使用此代码执行 bool 过滤器,但我不知道如何从那里继续:
stocks['OPK'].Open == df.loc['2010-01-04':, 'Open']
pd.merge 及其各自选项的问题在于它似乎添加了额外的内容 列。我只想通过比较可能具有缺失值的另一个数据框来填充缺失值(如果有)。
谢谢。
最佳答案
您可以使用 fillna()
df2 = df2.fillna(df1)
另一种更快的方法是combine_first
df2 = df2.combine_first(df1)
两者都会返回
Date Open
0 2010-01-04 1.80
1 2010-01-05 1.64
2 2010-01-06 1.90
3 2010-01-07 1.79
4 2010-01-08 1.92
5 2010-01-11 1.90
6 2010-01-12 1.89
7 2010-01-13 1.82
8 2010-01-14 1.84
9 2010-01-15 1.85
10 2010-01-19 1.77
关于python-3.x - 比较两个相似的数据帧并填充一个数据帧的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42984043/