python-3.x - 比较两个相似的数据帧并填充一个数据帧的缺失值

标签 python-3.x pandas dataframe merge missing-data

所以我有两个数据帧,一个是数据帧字典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'].Opendf.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/

相关文章:

python - 使用 sagemaker api 调用端点时出错

python-3.x - 如何使用pyplot填充阶梯曲线下的区域?

python - 使用 PyYAML 创建 pandas DataFrame 对象 - 超出递归深度

python - 将 csv 文件中的日期字段读取到数据框中

python - 跨行对 Pandas 数据框进行分组 - 2.0

python - 将一行分布在共享相同键的其他行上

python - 发出具有任意签名的新型 PyQt 信号

python - 并行运行单独的进程 - Python

Python 将每月值插入每日值(线性): Pandas

python - 不止一个条件满足numpy select