【发布时间】:2021-08-19 19:33:13
【问题描述】:
我有一个 pandas 数据框 df,其列名和数据类型在另一个文件中指定(读取为 data_dict)。因此,为了正确获取数据,我使用以下代码:
col_list = data_dict['name'].tolist()
dtype_list = data_dict['type'].tolist()
dtype_dict = {col_list[i]: dtype_list[i] for i in range(len(col_list))}
df.columns = col_list
df = df.fillna(0)
df = df.astype(dtype_dict)
但它抛出了这个错误:
以 10 为基数的 int() 的无效文字:'2.230'
我在网上搜索的大多数答案都推荐使用pd.to_numeric() 或df[col1].astype(float).astype(int) 之类的东西。这里的问题是df 包含 50+ 列,其中大约 30 列应转换为整数类型。因此,我不想一次将数据类型转换为一列。
那么我怎样才能轻松修复这个错误呢?
【问题讨论】:
-
您的问题到底是什么?如何为多列设置浮点类型?