首页 > 解决方案 > 从数据框中搜索单元格中的每个字符串并从另一个数据框列中查找(匹配)相同的字符串将索引返回到新准备的数据框

问题描述

Dataframe 1(每个词都需要搜索)'NAN'表示单元格是空的

   0   1   2   

0  AA  BB  NAN 

1  AB  AC  AD 

数据框 2(只有第 0 列必须与数据框 1 的每个项匹配,并从数据框 2 返回行索引,以便我们可以使用来自数据框 2 的行索引信息创建一个新数据框)

  0  
0 AA 
1 AC 
2 AD 
3 AB 

结果 DATAFRAME 2 第 1 列的行索引。NA表示字符串在数据框 2 中不可用。

   0   1   2   

0  0  NA  NAN

1  3   1   2 

现在另一个问题如何使代码更快。

标签: pythonpandasdataframe

解决方案


这是一种方法:

t = pd.merge(df1.stack().reset_index(), df2.reset_index(), left_on = 0, right_on = "0")
res = t.set_index(["level_0", "level_1"]).drop([0, "0"], axis=1).unstack()
print(res)

输出是:

        index          
level_1     0    1    2
level_0                
0         0.0  NaN  NaN
1         3.0  1.0  2.0

推荐阅读