python - Pandas:更新第二个数据帧的列值

标签 python pandas dataframe left-join

我有一个数据框df1,其中包含日期和其他值,如下所示:

date      value1     value2     value3
20100101  1          2          3
20100102  1          2          3
20100103  1          2          3
20100104  1          3          4
20100105  1          3          4
20100106  1          3          5
20100107  1          3          6

然后我想更新另一个数据帧df2中的一些值:

date      value1      
20100102  2           
20100104  3        
20100105  4    
20100106  5       
20100107  6     

因此预期结果将是:

date      value1     value2     value3
20100101  1          2          3
20100102  2          2          3
20100103  1          2          3
20100104  3          3          4
20100105  4          3          4
20100106  5          3          5
20100107  6          3          6  

据我所知,我无法使用左连接来做到这一点,除了迭代每个日期之外,是否有任何快速且简单的方法可以实现此目的?

<小时/>

更新:

谢谢大家的回答!

我还有另一种情况,df2df1 的日期不同,例如

date      value1      
20100102  2           
20100104  3        
20100105  4    
20100106  5       
20100107  6   
20100108  7

dropna(axis=0, how='any') 添加到 piRSquared 的答案中将解决此问题。

最佳答案

选项 1

d2.set_index('date').combine_first(
    d1.set_index('date')).reset_index().astype(d1.dtypes)

       date  value1  value2  value3
0  20100101       1       2       3
1  20100102       2       2       3
2  20100103       1       2       3
3  20100104       3       3       4
4  20100105       4       3       4
5  20100106       5       3       5
6  20100107       6       3       6
<小时/>

选项 2

d1[['date']].merge(d2, 'left').combine_first(d1).astype(d1.dtypes)

       date  value1  value2  value3
0  20100101       1       2       3
1  20100102       2       2       3
2  20100103       1       2       3
3  20100104       3       3       4
4  20100105       4       3       4
5  20100106       5       3       5
6  20100107       6       3       6

关于python - Pandas:更新第二个数据帧的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49685589/

相关文章:

python - 减少在 python 中从大数据库搜索的时间

python - 如何确定客户端是否需要 JSON 响应

python - Gurobi Python API : model. addVars() 太慢

python - 在 Pandas DataFrame 中首先包含字符串的顺序列

python - 测试数据框 pandas 中的行是否为 NULL 值

对 data.frame 中多列中的行重新排序,然后删除仅包含 NA 的行

python - 多维数组的减法运算

python - 如何清理此数据类型对象并将其转换为保持 Null 和 NaN 的 float 类型

Python:合并数据框并将所有值保留在单元格中(如果不相同)

python - 如何从列表中删除每个项目的方括号