繁体   English   中英

通过单独的DataFrame中的列内容对Dataframe进行子集设置-Python 3

[英]Subsetting a Dataframe by Column Contents in Separate DataFrame - Python 3

如何使用另一个dataframes列的内容对一个dataframe进行子集化?

df1 = pd.DataFrame({"0": ['one', 'two', 'three', 'four'], "Index": [1, 2, 3, 4]})
df2 = pd.DataFrame({"0": ['two', 'two', 'three', 'three']})

a = [i for i in df1['0'] if i in df2['0']]

结果

print(a)    
[]

所需输出:print(a)

       0        index
0      two      2
1      three    3

如果您真的想保持这种奇怪的不必要的列表理解,则需要传递s.values

>>> [i for i in df1['0'].values if i in df2['0'].values]
['two', 'three']

但是要直接得到您的输入暗示您想要的,只需在df1中选择条目,其中0列值位于df20列值中:

>>> df1[df1['0'].isin(df2['0'])]
       0  Index
1    two      2
2  three      3

您也可以重置索引,调用df_name.reset_index(drop=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM