如果一列 str.contain 熊猫中的特定字符,则合并两列

是这样吗

给出一个小测试数据如下:

   id city                                           address
0   1   HK           55 Peng Sui Road Che Sham Man Hong Kong
1   2   HK        77 Kun Chok Fong San Tsuen Noi Fok Kowloon
2   3   HK         48 Nut Chok Lou Tsa Sik Kowloon Hong Kong
3   4   HK          Block 69, Hai Ang Court Aberdeen Kowloon
4   5   HK  40 Tsang Tai Kit Street Wak Luet New Territories

如果Hong Kong不包含在 中address,那么我想detailed_add通过组合创建一个新列df['address'] + ', ' + df['city']

   id city                                           address                                       detailed_add
0   1   HK           55 Peng Sui Road Che Sham Man Hong Kong            55 Peng Sui Road Che Sham Man Hong Kong
1   2   HK        77 Kun Chok Fong San Tsuen Noi Fok Kowloon     77 Kun Chok Fong San Tsuen Noi Fok Kowloon, HK
2   3   HK         48 Nut Chok Lou Tsa Sik Kowloon Hong Kong          48 Nut Chok Lou Tsa Sik Kowloon Hong Kong
3   4   HK          Block 69, Hai Ang Court Aberdeen Kowloon       Block 69, Hai Ang Court Aberdeen Kowloon, HK
4   5   HK  40 Tsang Tai Kit Street Wak Luet New Territories  40 Tsang Tai Kit Street Wak Luet New Territori..., HK

过滤行:df[~df['address'].str.contains('Hong Kong', na = False)].

   id city                                           address
1   2   HK        77 Kun Chok Fong San Tsuen Noi Fok Kowloon
3   4   HK          Block 69, Hai Ang Court Aberdeen Kowloon
4   5   HK  40 Tsang Tai Kit Street Wak Luet New Territories

我怎么能那样做?谢谢。

ynjxsjmh

你可以使用 np.where()

df['detailed_add'] = np.where(df['address'].str.contains('Hong Kong'), df['address'], df['address'] + ', ' + df['city'])
print(df)

   id city                                           address                                       detailed_add
0   1   HK           55 Peng Sui Road Che Sham Man Hong Kong            55 Peng Sui Road Che Sham Man Hong Kong
1   2   HK        77 Kun Chok Fong San Tsuen Noi Fok Kowloon     77 Kun Chok Fong San Tsuen Noi Fok Kowloon, HK
2   3   HK         48 Nut Chok Lou Tsa Sik Kowloon Hong Kong          48 Nut Chok Lou Tsa Sik Kowloon Hong Kong
3   4   HK          Block 69, Hai Ang Court Aberdeen Kowloon       Block 69, Hai Ang Court Aberdeen Kowloon, HK
4   5   HK  40 Tsang Tai Kit Street Wak Luet New Territories  40 Tsang Tai Kit Street Wak Luet New Territori...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

DataFrame从str.contain创建列和groupby

如果另一列包含字符串,请替换熊猫中的一列

熊猫-在另一列中基于int的str(行)切片

如何在熊猫列中的日期或str中添加字符?

熊猫:如果一列匹配而另一列不匹配,则删除两行

使用 str 理解清理 Pandas 数据框中的一列字符串

如果来自一列的数据存在于另一列中,则合并两个数据帧

如果第一列使用bash匹配,则仅合并CSV中的特定列

如果一列的字符串包含熊猫数据框中另一列的单词,如何删除整行

str_c 在 tibble (R) 中除一列之外的所有列

当一列是日期时间而另一列是对象时,如何串联/合并熊猫中的两列?

在熊猫的两列中的任何一列上合并表

基于另一列的str。包含返回空字符串的值

熊猫:如果一列重复而另一列不同,则删除行

如果满足条件,大熊猫会创建一列等于另一列

熊猫:如果存在索引,则将一列的值添加到另一列

如果然后VBA宏-如果另一列的内容= 100%,则更新一列

如果下一列不在上一列中,python 连接多列

如果另一列重复,则合并列的值

用str.split(panda)拆分一列时强制列数

Pandas - 根据 str 包含从另一列创建带有值的新列

如果一列值在文本中,而另一列值是 html 中的单选按钮,则比较两列

如果第一列的行在 R 中为空,则用另一列的数据替换一列

如果另一列中的值在列表中,则更改一列中的值[R]

熊猫-合并/连接同一列中的两个值

熊猫:如果下一列的行包含特定值,则将列数据除以数字

如果条件满足熊猫,则根据另一列的升序向列添加字符

如果满足条件,则用另一列中的值替换一列中的行

批处理文件:在另一列中合并两列的字符串