[英]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.