繁体   English   中英

python:用字符串的一部分替换 dataframe 列中的单元格值

[英]python: replace cell values in dataframe column with part of a string

给定 dataframe 中的一列字符串,以下代码将它们转换为整数。 我想要做的是只保留没有点的字符串部分,每当单元格包含字符串形式的数字时,我想将其更改为名为“数字”的字符串。 需要明确的是,此列中的单元格具有以下值:

'a. 12','b. 75','23', 'c/a 34', '85', 'a 32', 'b 345'

我想用以下内容替换此列中的单元格值:

'a', 'b', 'number', 'c/a', 'number', 'a' , 'b' 

我怎么做?

l2=['a. 12','b. 75','23', 'c/a 34', '85', 'a 32', 'b 345']
d = {'col1': []}
df = pd.DataFrame(data=d)
df['col1']=l2

df['col1'] = df['col1'].str.replace(r'\D', '').astype(str)
print(df)

根据您的示例,这似乎是(1)仅将数字更改为“数字”和(2)删除尾随点/空格/数字:

df['col1'] = df['col1'].str.replace(r'^[\d\s]+$', 'number', regex=True).str.replace('\.?\s*\d*$', '')

output:

     col1
0       a
1       b
2  number
3     c/a
4  number
5       a
6       b

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM