.str.contains 返回实际找到的值而不是 True 或 False
.str.contains returning actual found value instead of True or False
我在我的数据框中使用 str.contains
来查看某个值是否在系列的值内。
而不是输出 True
或 False
,我想查看我在 contains 中传递的实际值。
A B
1 Fer
2 Ger
3 Tir
我的预期输出:
A B C
1 Fer er
2 Ger er
3 Tir Nan
是否有使用 pandas 执行此操作的内置方法?
Series.str.extract
非常适合这个:
df['C'] = df['B'].str.extract('(er)')
输出:
>>> df
A B C
0 1 Fer er
1 2 Ger er
2 3 Tir NaN
(er)
中的括号很重要;它们表示 捕获组 。如果其中的正则表达式匹配任何文本,则匹配的文本将被复制到输出列中。如果正则表达式不匹配,则将 NaN 复制到输出列。 .str.extract
return 一个数据框每个捕获组有一列,所以 (er)(abc)(def)
会 return 一个有 3 列的数据框。
我在我的数据框中使用 str.contains
来查看某个值是否在系列的值内。
而不是输出 True
或 False
,我想查看我在 contains 中传递的实际值。
A B
1 Fer
2 Ger
3 Tir
我的预期输出:
A B C
1 Fer er
2 Ger er
3 Tir Nan
是否有使用 pandas 执行此操作的内置方法?
Series.str.extract
非常适合这个:
df['C'] = df['B'].str.extract('(er)')
输出:
>>> df
A B C
0 1 Fer er
1 2 Ger er
2 3 Tir NaN
(er)
中的括号很重要;它们表示 捕获组 。如果其中的正则表达式匹配任何文本,则匹配的文本将被复制到输出列中。如果正则表达式不匹配,则将 NaN 复制到输出列。 .str.extract
return 一个数据框每个捕获组有一列,所以 (er)(abc)(def)
会 return 一个有 3 列的数据框。