【发布时间】:2021-02-20 02:27:00
【问题描述】:
我正在使用如下所示的 kaggle 数据集:
df1.head()
df2.head()
基本上这两个dataframesdf1和df2是从不同的文件中读取的,并且有一些共同的值。我想获取两个数据帧的EssayText 列中相同值的索引。
现在我正在这样做:
[(True, i) for i,text in enumerate(df2['EssayText']) if text in df1['EssayText']]
但这不会返回任何输出,而我已经看到至少前 5 个值在 df1 和 df2 中完全相同。
我也尝试了df1['EssayText'][0] in df2['EssayText'],但令人惊讶的是它返回了False。我似乎不明白原因。
另一方面,如果我这样做:
df1.iloc[3] == df2.iloc[3]
我得到的输出是
Id True
EssaySet True
Score1 True
Score2 True
EssayText True
Name: 3, dtype: bool
请帮助我理解我做错了什么。在此先感谢:)
【问题讨论】:
-
请向我们提供代码以重新创建您的数据,例如
df.to_dict()(根据需要截断) -
那是因为它正在比较以这种方式索引数据帧时返回的系列索引(我想)。所以在每个数据框索引的末尾使用.values,比如df1['key'].values
标签: python pandas dataframe series