我有一个大数据集,我不能将dtype从object转换为int,因为错误 “invalid literal for int()with base 10:“ 我做了一些研究,这是因为列中有一些字符串。如何找到这些字符串并将其替换为数值?
yh2wf1be1#
您可能正在寻找.str.isnumeric(),它只允许您过滤这些字符串中的数字的数据,并独立地对它们进行操作......但是您需要决定这些值应该是什么
.str.isnumeric()
€
>>> df = pd.DataFrame({"a":["1", "2", "x"]}) >>> df a 0 1 1 2 2 x >>> df[df["a"].str.isnumeric()] a 0 1 1 2 >>> df[~df["a"].str.isnumeric()] a 2 x
hfyxw5xn2#
假定“col”为列名。出错时强制转换为数值或NaN:
df['col_num'] = pd.to_numeric(df['col'], errors='coerce')
如果需要,您可以使用以下方法检查哪些原始值给出NaN:
df.loc[df['col'].notna()&df['col_num'].isna(), 'col']
sycxhyv73#
以10为基数表示它是一个浮点数。所以在python中,你可以这样做
int(float(____))
因为使用了int(),所以我猜您需要一个整数值。
3条答案
按热度按时间yh2wf1be1#
您可能正在寻找
.str.isnumeric()
,它只允许您过滤这些字符串中的数字的数据,并独立地对它们进行操作......但是您需要决定这些值应该是什么€
,或者其他非UNIX纪元的日期格式,或者任何可能性。)hfyxw5xn2#
假定“col”为列名。
出错时强制转换为数值或NaN:
如果需要,您可以使用以下方法检查哪些原始值给出NaN:
sycxhyv73#
以10为基数表示它是一个浮点数。所以在python中,你可以这样做
因为使用了int(),所以我猜您需要一个整数值。