所以我试图在一个列上匹配两个非常不同的数据帧,每个数据帧都包含字符串格式的数字。我需要一个简洁、非常快速的解决方案,所以我尝试使用字符串理解并在几天前成功,然后丢失了我的工作,我试图重新创建它。
df1=pd.DataFrame({'col':['hey','hi','how ya durn']})
df2=pd.DataFrame({'col':['hey','hi','hello','what']})
df3=df2[[x for x in df2.col for y in df1.col if x in y]]
df3.head()
所以我前几天用 2 个数据帧完成了这项工作,都是 20-30 列,约 100k 行,除了每列 1 列之外的不同列数据,我试图匹配它。我要么得到 ValueError:Item wrong length # instead of #.要么花费大量时间,因为我使用的系统很慢。
我知道我需要使用列表理解或更快的东西,而且我知道.apply()需要太长时间。我的两个匹配列都包含字符串格式的 10-15 长度数字。几天前,当我使用类似的列表组合单行代码让它工作时,它花了几秒钟的时间才能完成,并且非常完美,现在我丢失了它并且无法重新创建它,哈哈。任何帮助是极大的赞赏。
any()(附注:我可能在列表比较中使用了一个语句,并且我 95% 确定我使用了if x in y。)
牧羊人nacy
相关分类