python-3.x - 从熊猫系列中的字符串列表中删除空格
问题描述
我有一个数据框,其中一列值是字符串列表。
我想从列表中的每个元素中删除前导和尾随空格。
我正在尝试这个:
interests_no_nulls = fcc['JobRoleInterest'].dropna()
splitted_interests = interests_no_nulls.str.split(',')
splitted_interests.apply(lambda x: x.strip())
但我明白了:
Traceback (most recent call last):
File "C:\Users\Mark\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\series.py", line 4045, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas/_libs/lib.pyx", line 2228, in pandas._libs.lib.map_infer
File "C:/Users/Mark/PycharmProjects/main/main.py", line 60, in <lambda>
splitted_interests.apply(lambda x: x.strip())
AttributeError: 'list' object has no attribute 'strip'
解决方案
list comprehension
在strip
列表中使用:
fcc = pd.DataFrame({'JobRoleInterest':['aa,ss','dd , ff','k ,dd', 'j, gg']})
interests_no_nulls = fcc['JobRoleInterest'].dropna()
splitted_interests = interests_no_nulls.str.split(',')
print (splitted_interests.apply(lambda x: [y.strip() for y in x]))
0 [aa, ss]
1 [dd, ff]
2 [k, dd]
3 [j, gg]
Name: JobRoleInterest, dtype: object
\s*,\s*
或通过-更改分隔符\s*
用于零个或多个空格:
fcc = pd.DataFrame({'JobRoleInterest':['aa,ss','dd , ff','k ,dd', 'j, gg']})
interests_no_nulls = fcc['JobRoleInterest'].dropna()
splitted_interests = interests_no_nulls.str.split('\s*,\s*')
print (splitted_interests)
0 [aa, ss]
1 [dd, ff]
2 [k, dd]
3 [j, gg]
Name: JobRoleInterest, dtype: object
推荐阅读
- apache - Openwhisk Setuptools Geetting 405 Method not allowed
- python - Matplotlib 图表显示的刻度少于请求的刻度
- python - 在 python 中调用装饰器时出现 NameError
- python - discord.py,同时使用斜杠命令和前缀
- vue.js - VSCode 中 *.vue 文件的自动格式化不起作用
- flutter - 已检测到对 GetX 的不当使用
- php - 如何在php中获取paratest的进程ID或唯一ID
- python - 如何从 MDbutton 中的 on_release 触发 MDTextField 中的 on_text_validate?
- python - 如何将逐行字典合二为一?
- python - 如何根据前一行满足条件插入行