繁体   English   中英

如何比较 pandas 数据帧中的行?

[英]How to compare rows in pandas data frames?

我有一个带有两列的 pandas df。 其中一列包含单词串,一列包含单个单词。 我需要比较这两列以查看“Col_1”中的字符串是否包含“Col_2”中的单词,然后使用该元素的索引创建另一列。

这就是我所拥有的:

data = {'Col_1':  ['A B C D', 'A B C', 'A B C'], 'Col_2': ['D', 'B', 'Z']}
df = pd.DataFrame(data)
    
print (df)

这就是我需要的:

data = {'Col_1':  ['A B C D', 'A B C', 'A B C'], 'Col_2': ['D', 'B', 'C'], 'Col_2': ['3', '1', '2']}
df = pd.DataFrame(data)
    
print (df)

我一直在尝试使用 .iteritems() 遍历列,但它并没有真正帮助,因为我似乎无法访问 'Col_2' 中字符串中的元素

这可以使用轴设置为 1 的 df.apply 方法来完成,因此您可以在行级别应用 function 或 lambda。

下面是创建索引为 substring 的新列的示例代码。如果值为 -1,则表示未找到 substring。

df['Col_3'] = df.apply(lambda row: row['Col_1'].find(row['Col_2']), axis=1)

output 看起来像这样:

     Col_1 Col_2  Col_3
0  A B C D     D      6
1    A B C     B      2
2    A B C     Z     -1

暂无
暂无

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

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