如何使用DataFrame进行对账?

2024-06-09 16:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个每周获取的数据帧,希望更新一个基于每周报告更新的跟踪程序,例如:

这是我收到的每周报告:

ID   Cost
X12  500
X54  100
X52  150
X45  200
X32  435

我有一个主要指标跟踪器的数据帧,需要根据周报进行更新:

^{pr2}$

我想从数据帧1获取数字并将其放入数据帧2,这将导致:

ID   Cost
X12  500
X54  100
X52  150
X45  200
X37  4664    
X76  34
X57  467
X56  23465
X48  547
X32  435

我将如何执行这样的功能,从一个数据帧到另一个数据帧。我假设我们使用for循环,在遍历第一个数据帧的同时搜索第二个数据帧,但是我该如何设置它呢?在

谢谢!在


Tags: 数据程序id报告数字指标costx12
3条回答

如果秩序不是问题,那么

In [1178]: dfw.set_index('ID').combine_first(dfo.set_index('ID')).reset_index()
Out[1178]:
    ID    Cost
0  X12   500.0
1  X32   435.0
2  X37  4664.0
3  X45   200.0
4  X48   547.0
5  X52   150.0
6  X52   150.0
7  X54   100.0
8  X57   467.0
9  X76    34.0

这也将处理任何新的ID添加。在

你可以这样做。在

where 
df -> first dataframe
df1 -> second dataframe

代码:

^{pr2}$

参考:

Replace column values based on another dataframe

您可以先使用map和CONNECTION\U

df2['Cost'] = df2['ID'].map(df1.set_index('ID')['Cost']).combine_first(df2['Cost'])

你得到了

^{pr2}$

相关问题 更多 >