我想知道这在熊猫身上是否可行:
df2
,我想创建new1
和new2
。你知道吗new1
作为可以从df1
中找到与列A匹配的最新日期
和Bnew2
作为可以从df1
中找到的与列A匹配的最新日期
但不是Bnew1
,但没有new2
。你知道吗import pandas as pd
d1 = [['1/1/19', 'xy','p1','54'], ['1/1/19', 'ft','p2','20'], ['3/15/19', 'xy','p3','60'],['2/5/19', 'xy','p4','40']]
df1 = pd.DataFrame(d1, columns = ['Name', 'A','B','C'])
d2 =[['12/1/19', 'xy','p1','110'], ['12/10/19', 'das','p10','60'], ['12/20/19', 'fas','p50','40']]
df2 = pd.DataFrame(d2, columns = ['Name', 'A','B','C'])
d3 = [['12/1/19', 'xy','p1','110','1/1/19','3/15/19'], ['12/10/19', 'das','p10','60','0','0'], ['12/20/19', 'fas','p50','40','0','0']]
dfresult = pd.DataFrame(d3, columns = ['Name', 'A','B','C','new1','new2'])
更新了!你知道吗
IIUC,您想向
df2
添加两列:new1
和new2
。你知道吗首先我修改了两件事:
为了便于使用,将
Name
重命名为Name1
和Name2
。然后我把Name1
变成了一个真实的日期,这样我们就可以按组获得最大日期。你知道吗然后,我们在
A
列上合并df2和df1。这将为我们提供与该列匹配的行当两个数据帧上的
B
列相同时,我们从中得到Name1
:如果它们不同,我们得到每个
A
组的最大日期:输出:
您可以通过以下方式实现:
因此:
这将产生:
我最初的想法是这样做。可悲的是,它并不优雅。一般来说,这种确定某个值的方法不受欢迎,主要是因为它无法扩展,而且数据量大,速度特别慢。你知道吗
相关问题 更多 >
编程相关推荐