[英]Remove Integers and special characters from column
python 的新手,想从列值中删除特殊字符和整数。 我确实想在列中只保留字符串字符。 对于这种情况,列 C我确实想删除特殊字符,如斜杠和数字,见表
import pandas as pd
data = {'A':['NW', 'NB', 'UK', 'CAN', 'der'],'B':['Tom', 'nick', 'krish', 'jack','mark'], 'C':['|20|Empty,', 'Yes| -1', 'Male|-1|2-female|0', 'Yes| 1', 79]}
df = pd.DataFrame(data)
print(df)
现在,如果一行在 C 列中只有一个 integer,我应该删除它,我已经尝试过,但效果不佳
df['C'].map(lambda x: re.sub(r'\-,+', '', x))
预期 OUTPUT
import pandas as pd
data = {'A':['NW', 'NB', 'UK', 'CAN'],'B':['Tom', 'nick', 'krish', 'jack'], 'C':['Empty', 'Yes', 'Male female', 'Yes']}
df = pd.DataFrame(data)
print(df)
使用str.replace
前任:
data = {'A':['NW', 'NB', 'UK', 'CAN', 'der'],'B':['Tom', 'nick', 'krish', 'jack','mark'], 'C':['|20|Empty,', 'Yes| -1', 'Male|-1|2-female|0', 'Yes| 1', 79]}
df = pd.DataFrame(data)
df["C"] = df["C"].str.replace(r"[^a-zA-Z]+", " ", regex=True).str.strip()
print(df)
Output:
A B C
0 NW Tom Empty
1 NB nick Yes
2 UK krish Male female
3 CAN jack Yes
4 der mark NaN
试试这个,使用.apply
>>> df['C'].apply(lambda x: re.sub(r'[^a-zA-Z ]+', ' ', str(x)))
0 Empty
1 Yes
2 Male female
3 Yes
4
Name: C, dtype: object
您可以使用str.replace + str.strip最后使用dropna :
df['C'] = df.C.str.replace('(?i)[^a-z]', ' ').str.replace('\s+', ' ').str.strip()
print(df.dropna())
Output
A B C
0 NW Tom Empty
1 NB nick Yes
2 UK krish Male female
3 CAN jack Yes
下面的代码应该可以工作,但可能不是最佳的方法。
df["C"].str.replace("[0-9]","").str.replace("|"," ").str.replace(",","").str.replace("-","").dropna()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.