Python 基于两个数据帧匹配交易的汇款人和收款人
有两个数据帧。第一个显示的是来自某些Python 基于两个数据帧匹配交易的汇款人和收款人,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,有两个数据帧。第一个显示的是来自某些客户的转账。第二个数据帧显示哪个客户机收到这些钱df1只有发送者id,df2只有接收者id。我需要在每个数据框中添加一列,根据日期和时间和组id(只有一个组中的客户可以相互转账)显示交易的另一端。诀窍在于,钱在收到之前几分钟就已经寄出了,所以在df1和df2中的date列中没有精确的匹配项。另一件事是,一个客户可以向其组中的两个或多个不同的客户汇款,因此价格列可能也不完全匹配(df1中的价格总是等于或高于df2)。 是否需要在df2中添加一列,显示使用df1中
客户的转账。第二个数据帧显示哪个客户机收到这些钱df1
只有发送者id,df2
只有接收者id。我需要在每个数据框中添加一列,根据日期和时间
和组id
(只有一个组中的客户可以相互转账)显示交易的另一端。诀窍在于,钱在收到之前几分钟就已经寄出了,所以在df1
和df2
中的date
列中没有精确的匹配项。另一件事是,一个客户
可以向其组
中的两个或多个不同的客户
汇款,因此价格
列可能也不完全匹配(df1
中的价格
总是等于或高于df2
)。
是否需要在df2
中添加一列,显示使用df1
中的数据获得资金的client
?考虑到可能存在多个接收器,这将导致添加额外字段,是否可以添加到根据df2
中的数据向其发送资金的df1
客户id
?
初始数据帧的示例:
df1
df2
在本例中,我们需要将发送方7与接收方1和2、8与3和4、9与5进行匹配。您是否只需要以下内容:df1.merge(df2,on='group_id')
?或者:df2['group\u id'].map(df1.set\u index('group\u id')['client\u id'])
适用于此示例,但组中可能有多个发件人。在这种情况下,还需要匹配日期和价格,然后合并所有3个?如果没有两个因素,这将起作用:date\u payed
和date\u received
相隔几分钟(确切的分钟数可能会有所不同);price
中也没有精确的匹配:例如client
7发送了16500次,但是client
1收到了10000次,而client
2收到了6500次,那么您就不能很好地表示您的问题。请回顾并创建一个能准确说明您实际问题的报告。你还应该包括你目前的尝试,这样你就可以清楚地知道你已经尝试了什么。
client_id group_id date_payed price_payed
7 11 01.01.2019 14:41:37 16500
8 14 05.01.2019 14:40:00 15000
9 18 08.01.2019 12:13:04 14000
client_id group_id date_received price_received
1 11 01.01.2019 14:44:37 10000
2 11 01.01.2019 14:44:37 6500
3 14 05.01.2019 14:42:00 12000
4 14 05.01.2019 14:42:00 3000
5 18 08.01.2019 12:16:04 14000