从一个数据框中的另一个中搜索值,并在相应的行/不同列中返回信息

蓝代码

我有2个数据框:

df_Billed: pd.Dataframe({'Bill_Number':[220119, 220120, 220219, 220219, 220419, 220519, 220619, 221219],'Date': [1/31/2019, 2/20/2020, 2/28/2019, 6/30/2019,6/30/2019,6/30/2019,6/30/2019,12/31/2019], 'Amount': [3312.5, 832.0,10000.0, -3312.5,8725.0,1862.5,3637.5,1587.5]})

df_Received: pd.Dataframe({'Bill_Number':[220119, 220219, 220419, 220519, 220619],'Date':[4/16/2019,5/21/2019,8/2/2019,8/2/2019,8/2/2019],'Amount':[3312.5,6687.5,8725,1862.5,3637.5]})

我试图在df_Billed中搜索每个“ Bill_Number”,以查看df_Received是否存在。理想情况下,如果有的话,我想针对特定的帐单编号来计算df_Billed和df_Received之间的日期差(以查看支付多少天)。如果df_Received中不存在帐单号,我想简单地在df_Billed中返回该帐单号的所有行。

EX: Since df_Billed Bill_Number 220119 is in df_Received, it would return 75 (which is the number of days it took for the bill to be paid 4/16/2019 - 1/31/2019). 

EX: Since df_Billed Bill_Number 221219 is not in df_Received, it would return 12/31/2019 (which is the date it was billed). 
pc_pyr

您可能最初可以在Bill_Number上使用merge

df_Billed=df_Billed.merge(df_Received,on='Bill_Number',how='left')

然后使用applypandas.to_datetime计算日期之间的差异

df_Billed['result']=df_Billed.apply(lambda x:x.Date_x if pd.isnull(x.Date_y) 
                    else abs(pd.to_datetime(x.Date_x)-pd.to_datetime(x.Date_y)).days, 
                    axis=1)

最后,我认为您想为最终结果创建一个新列。.因此,我将合并的列Date_x和Amount_y重命名为下面的Date和Amount:

df_Billed.drop(['Date_y','Amount_y'],axis=1,inplace=True)
df_Billed.rename(columns={"Date_x": "Date","Amount_x":"Amount"},inplace=True)

最终数据框:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫会在一个数据框中删除与另一个数据框的一列中的行具有共同值的行

如何从一个熊猫数据框中获取行值,并将其用作从另一个数据框中获取值的参考

如何从一个类中获取int值并在另一个中使用它

从另一个数据框中的唯一值以及分配给该列的相应值中创建带有列名的新数据框

使用熊猫从另一个数据框中的信息中过滤一个数据框

通过在两个数据框中的某些列中找到最接近的值,从一个数据框中提取行以加入另一个数据框

用另一个数据框中的相应名称替换数据框中的某些列

根据另一个数据框中的信息为一个数据框中的行子集分配一个值(在一个列中)

从另一个数据框中搜索(行值)数据

从列中的另一个数据帧返回具有不同值的行

根据另一个数据集中的列值在一个数据框中创建列

排除其列包含另一个数据框中的值的行

根据关键列值熊猫将一个数据框中的行与另一个数据框中的行匹配

在另一个数据框中搜索一个数据框列

根据Pandas中的ID将列值从一个数据框复制到另一个数据框

根据id列中的公共值从另一个数据框中减去数据框的行

在R中,如何合并两个数据帧,其中一个中的列名等于另一个中的行值?

如何删除一个数据框中的空行,同时删除另一个数据框中的相应行?

从数据框中删除行,因为另一个数据框中不存在列值

用另一个中的相应值填充数据框

使用另一个在一个数据框中搜索值

R根据另一个中的值搜索第二个数据帧

R - 从一个数据框中查找元素的索引并将其放置在另一个中

pandas 从一个数据框中检索值并在另一个数据框中进行计算

根据另一个数据框中的相应值更改熊猫数据框中的值

根据另一个数据框中的列值从 R 中的数据框中删除行

R:匹配两个数据框并在一个中创建新列

如果基于公共列的另一个数据框中没有匹配项,如何从一个数据框中删除行?

是否可以在另一个数据框的列中搜索两个数据框列的值并返回匹配的 ID?