我想从字符串类型的熊猫列中删除小数点
Df
Net Sales
123.45
34.89
65.00
我正试着去掉那一栏的小数
Net Sales
123
34
65
df['Net Sales']已经是字符串类型。
我尝试如下:
< code>df['净销售额'] = df['净销售额']。astype(str)。替换(' \.0 ','',regex=True)
但我得到的错误如下:
< code>ValueError:基数为10的int()的文本无效:“1567.55”
谢谢。
您可以将数据类型强制转换为int,只是在您的数据中有nan的情况下需要注意,转换为int不起作用,因为它们有float数据类型,所以regex解决方案可能更好。
df['Net Sales'] = df['Net Sales'].astype('int')
或者在正则表达式的情况下:
df['Net Sales'] = df['Net Sales'].astype('str').replace(r'\.\d+$', '', regex=True).astype('int')
例:
import pandas as pd
df = pd.DataFrame({"Net Sales" : [1.5, 2.5]})
df['Net Sales'] = df['Net Sales'].astype('int')
df['Net Sales'] = df['Net Sales'].astype('str').replace(r'\.\d+$', '', regex=True).astype('int')
输出:
# Net Sales
#0 1
#1 2
如果值是字符串,首先转换为浮点数,然后转换为整数:
df['Net Sales'] = df['Net Sales'].astype(float).astype(int)
如果值为浮点数,请使用:
df['Net Sales'] = df['Net Sales'].astype(int)
您的解决方案应使用 \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
或者您可以使用<code>按点拆分
df['Net Sales'] = df['Net Sales'].astype(str).str.split('.').str[0].astype(int)
问题内容: 我对此有一个类似的问题:Pandas DataFrame:从一列中的字符串中删除不需要的部分 。 所以我用了: 大多数项目以“ PPI /”开头,但并非全部。似乎当没有’PPI /’后缀的项目遇到此错误时: AttributeError:“ float”对象没有属性“ lstrip” 我在这里想念什么吗? 问题答案: 使用replace: 或string.replace:
问题内容: 我已经尝试解决这个问题一段时间了,我试图从DB_user列中删除非ASCII字符并尝试将它们替换为空格。但是我不断出错。这是我的数据框的外观: 我正在使用此功能,这是我在研究SO问题时遇到的。 我不断收到错误: 但是,我认为通过使用filter_func函数中的循环,可以通过在’ord’中输入一个char来解决这个问题。因此,当它遇到非ASCII字符时,应将其替换为空格。 有人可以帮我
我有一个熊猫数据帧,其中有一列文件列表 我想从中的每个条目中删除文件扩展名。如何完成此操作? 我尝试了: 但是当我用<code>df查看列条目时。head(),没有任何变化。 如何做到这一点?
问题内容: 我想替换列中的子字符串 到。 需求输出 我尝试,但它返回。 问题答案: 使用与更换和:
问题内容: 我有一个清单 我正在尝试删除其超字符串已经在列表中的字符串。在这种情况下,结果应为: 我已经写了代码: 但它似乎不起作用。我读过,我们无法在列表上进行迭代时将其删除。因此,副本,而这是我的原始列表。 问题答案: l=[‘abc’,’abcdef’,’def’,’defdef’,’polopolo’] print [j for i, j in enumerate(l) if all(j
我有一个相当大的数据帧(11k行和20列)。其中一列的数据类型是混合的,主要是数字(float),其中有少量字符串分散在各处。 在使用混合列中的数据执行一些统计分析之前,我通过查询其他列来对该数据帧进行子集划分(但如果存在字符串,则无法执行此操作)。99%的时间,一旦子集这个列是纯数字的,但很少字符串值会在子集中结束,我需要捕获它。 通过Pandas混合类型列循环检查字符串(或者反过来检查整个列是