Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 熊猫数据框合并选择列_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 熊猫数据框合并选择列

Python 3.x 熊猫数据框合并选择列,python-3.x,pandas,Python 3.x,Pandas,我希望通过比较df1和df2中的“no”字段,仅从df2(所有列)获取数据 下面是我的3行代码,对于这一点,我得到了来自df1和df2的所有列,它们不能从df1中修剪字段。如何实现 我有两个数据帧,如下所示: df1: no,name,salary 1,abc,100 2,def,105 3,abc,110 4,def,115 5,abc,120 df2: no,name,salary,dept,addr 1,abc,100,IT1,ADDR1 2,abc,101,IT2,ADDR2 3,ab

我希望通过比较df1和df2中的“no”字段,仅从df2(所有列)获取数据

下面是我的3行代码,对于这一点,我得到了来自df1和df2的所有列,它们不能从df1中修剪字段。如何实现

我有两个数据帧,如下所示:

df1:
no,name,salary
1,abc,100
2,def,105
3,abc,110
4,def,115
5,abc,120

df2:
no,name,salary,dept,addr
1,abc,100,IT1,ADDR1
2,abc,101,IT2,ADDR2
3,abc,102,IT3,ADDR3
4,abc,103,IT4,ADDR4
5,abc,104,IT5,ADDR5
6,abc,105,IT6,ADDR6
7,abc,106,IT7,ADDR7
8,abc,107,IT8,ADDR8

df1 = pd.read_csv("D:\\data\\data1.csv")
df2 = pd.read_csv("D:\\data\\data2.csv")
resDF = pd.merge(df1, df2, on='no' , how='inner')

我认为您只需要筛选
no
列,然后
on
how
参数是不必要的:

resDF = pd.merge(df1[['no']], df2)
或通过以下方式与过滤一起使用:


这有什么帮助吗?非常感谢你。这对我帮助很大。:-)
resDF = df2[df2['no'].isin(df1['no'])]