如果列的组合来自Python Pandas中的其他数据框,则选择行

2024-06-17 15:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的数据帧,有原点,目的地和其他数据点。如何有效地选择具有感兴趣的源、目的地对的行,即我有另一个感兴趣的数据帧。在

df = pd.DataFrame({'Origin' : ['A','A','A','B','B','A'], 
                   'Destination' :['B','C','D','C','D','D'], 
                   'X' : ['a','b', 'c', 'd', 'e', 'f']})


I = pd.DataFrame({'Origin' : ['A','A','B'], 'Destination' : ['B','D','C']})

我想回去

^{pr2}$

Tags: 数据dataframedforigindestination感兴趣pd目的地
1条回答
网友
1楼 · 发布于 2024-06-17 15:28:56

^{}与默认的inner联接一起使用,并且如果两个DataFrames参数on中只有相同的联接列可以省略,则:

print (pd.merge(df,I))
  Destination Origin  X
0           B      A  a
1           D      A  c
2           D      A  f
3           C      B  d

如果需要重新排序列:

^{pr2}$

如果有更多同名列添加on

print (pd.merge(I,df, on=['Origin','Destination'])[['Origin','Destination','X']])
  Origin Destination  X
0      A           B  a
1      A           D  c
2      A           D  f
3      B           C  d

感谢您的建议:

print (df.merge(I))
  Destination Origin  X
0           B      A  a
1           D      A  c
2           D      A  f
3           C      B  d

相关问题 更多 >