gpt4 book ai didi

python - 删除数据框中的非字母数字符号

转载 作者:行者123 更新时间:2023-12-01 08:59:56 26 4
gpt4 key购买 nike

如何从数据框中的值中删除非字母?我只设法将全部转换为小写

def doubleAwardList(self):
dfwinList = pd.DataFrame()
dfloseList = pd.DataFrame()
dfwonandLost = pd.DataFrame()
#self.dfWIN... and self.dfLOSE... is just the function used to call the files chosen by user
groupby_name= self.dfWIN.groupby("name")
groupby_nameList= self.dfLOSE.groupby("name _List")

list4 = []
list5 = []

notAwarded = "na"

for x, group in groupby_name:
if x != notAwarded:
list4.append(str.lower(str(x)))
dfwinList= pd.DataFrame(list4)

for x, group in groupby_nameList:
list5.append(str.lower(str(x)))
dfloseList = pd.DataFrame(list5)

数据示例:基本上我主要需要删除句号和连字符,因为我需要将其与另一个文件进行比较,但命名不太一致,因此我必须删除非字母数字以获得更准确的结果

creative-3
smart tech pte. ltd.
nutritive asia
asia's first

期望的结果:

creative 3
smart tech pte ltd
nutritive asia
asia s first

最佳答案

使用DataFrame.replace仅并向模式添加空格:

df = df.replace('[^a-zA-Z0-9 ]', '', regex=True)

如果一列 - 系列:

df = pd.DataFrame({'col': ['creative-3', 'smart tech pte. ltd.', 
'nutritive asia', "asia's first"],
'col2':range(4)})
print (df)
col col2
0 creative-3 0
1 smart tech pte. ltd. 1
2 nutritive asia 2
3 asia's first 3

df['col'] = df['col'].replace('[^a-zA-Z0-9 ]', '', regex=True)
print (df)

col col2
0 creative3 0
1 smart tech pte ltd 1
2 nutritive asia 2
3 asias first 3

编辑:

如果可以使用多个列,则仅选择对象,显然是字符串列,并在必要时转换为字符串:

cols = df.select_dtypes('object').columns
print (cols)
Index(['col'], dtype='object')

df[cols] = df[cols].astype(str).replace('[^a-zA-Z0-9 ]', '', regex=True)
print (df)
col col2
0 creative3 0
1 smart tech pte ltd 1
2 nutritive asia 2
3 asias first 3

关于python - 删除数据框中的非字母数字符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52533429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com