我想从字符串类型的 pandas 列中删除小数点
df
Net Sales
123.45
34.89
65.00
Run Code Online (Sandbox Code Playgroud)
我正在尝试从该列中删除小数
Net Sales
123
34
65
Run Code Online (Sandbox Code Playgroud)
df['Net Sales'] 已经是字符串类型。
我尝试如下:
df['Net Sales'] = df['Net Sales'].astype(str).replace('\.0', '', regex=True)
但我收到如下错误:
ValueError: invalid literal for int() with base 10: '1567.55'
谢谢。
如果值是字符串,首先转换为浮点数,然后转换为整数:
df['Net Sales'] = df['Net Sales'].astype(float).astype(int)
Run Code Online (Sandbox Code Playgroud)
如果值是浮点数,请使用:
df['Net Sales'] = df['Net Sales'].astype(int)
Run Code Online (Sandbox Code Playgroud)
您的解决方案应更改为\d+匹配数字后.:
df['Net Sales'] = df['Net Sales'].astype(str).replace('\.\d+', '', regex=True).astype(int)
print (df)
Net Sales
0 123
1 34
2 65
Run Code Online (Sandbox Code Playgroud)
或者您可以使用split点并通过索引选择第一个列表:
df['Net Sales'] = df['Net Sales'].astype(str).str.split('.').str[0].astype(int)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7878 次 |
| 最近记录: |