首页 > 解决方案 > 熊猫得到行对应

问题描述

使用熊猫,我怎样才能找到一个数据帧的行在另一个数据帧中的位置?

例子:

我们有一个数据框 df_A

import pandas as pd
df_A = pd.DataFrame([[1, 2,3], [1, 3,4], [1, 4,9]], columns=['idx_1', 'idx_2','values'])

和另一个数据框 df_B

df_B = pd.DataFrame([[1, 2], [1, 4]], columns=['idx_1', 'idx_2'])

我想要df_A的idx列与df_B的idx列之间的对应关系:

     idx_1  idx_2  values row_B
0      1      2      3     0
1      1      3      4     NAN
2      1      4      9     1

标签: pandas

解决方案


DataFrame.merge与左连接和DataFrame.reset_indexand一起使用rename以避免丢失 的索引df_B

df2 = df_B.reset_index().rename(columns={'index':'row_B'})
df = df_A.merge(df2, how='left', on=['idx_1', 'idx_2'])
print (df)
   idx_1  idx_2  values  row_B
0      1      2       3    0.0
1      1      3       4    NaN
2      1      4       9    1.0

推荐阅读