【发布时间】:2019-02-16 03:26:59
【问题描述】:
所以我有一个 df,其中有一列具有各种字符串值
col1
Hi
-Hi
+hi
=Hi
我想将此列中的所有非字母数字值删除为:
col1
Hi
Hi
hi
Hi
我知道我可以用那些非字母字符替换 str,但为了将来证明脚本,我想使用类似 isalpha() 的东西。将来可能会有不同的非字母字符。
【问题讨论】:
所以我有一个 df,其中有一列具有各种字符串值
col1
Hi
-Hi
+hi
=Hi
我想将此列中的所有非字母数字值删除为:
col1
Hi
Hi
hi
Hi
我知道我可以用那些非字母字符替换 str,但为了将来证明脚本,我想使用类似 isalpha() 的东西。将来可能会有不同的非字母字符。
【问题讨论】:
你也可以使用正则表达式:
df['col1'].str.findall(r'[a-zA-Z0-9]+').apply(lambda x: ''.join(x))
输出:
0 Hi
1 Hi
2 hi
3 Hi
【讨论】:
您可以使用列表推导:
df['col1'] = [''.join([i for i in x if i.isalpha()]) for x in df['col1']]
print(df)
col1
0 Hi
1 Hi
2 hi
3 Hi
如果您有 NaN 或 float 值,请将它们首先通过将它们转换为空字符串来删除:
df.loc[pd.to_numeric(df['col1'], errors='coerce').notnull(), 'col1'] = ''
【讨论】: