[英]Python partial string match using list comprehension
我正在尝试使用列表推导来基于部分字符串匹配来编辑列表。 我需要将包含L
的df group
列中的所有元素替换为Left
['Left' if x.str.contains('L') else x for x in df['group']]
它不会让我'L' in x
应用str.contains或'L' in x
。 对于后者,它说argument of type 'float' is not iterable
任何建议都将受到欢迎。
编辑:添加数据
import pandas as pd
df=pd.DataFrame()
df['group']=[u'L1', u'L2', u'L3', u'R1', u'R2', u'R3']
您可以将x强制转换为如下所示的字符串
['Left' if 'L' in str(x) else x for x in df['group']]
但是,如果x被解释为浮点数,这听起来像是数据源的问题,除非df ['group']同时包含字符串和浮点数是可行的?
编辑:
如果浮点数和字符串都在您的数据中,则建议您仅在字符串中查找“ L”:
['Left' if isinstance(x, unicode) and u'L' in x else x for x in df['group']]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.