我有一个dataframe,其中transaction_id,created_at和类型为float的amount列。我将is dataframe写入csv,然后想通过以下pd.read_csv代码加载它。它一直显示错误:无法将字符串转换为浮点数。
feature_columns_dtype = {
'transaction_id' :'object',
'created_at' :'object' ,
'amount' :'float64'}
label_column_dtype = {"is_fraud": "int64"}
raw_data = [
pd.read_csv(
file,
header=None,
names=feature_columns_names + [label_column],
dtype=merge_two_dicts(feature_columns_dtype, label_column_dtype),
skiprows=[1],
low_memory=False
)
for file in input_files
]
concat_data = pd.concat(raw_data)
我已经检查了原始的 Dataframe ,并确保强制执行正确的数据类型,并且'amount'列被转换为np.float64。
我删除了NAs,删除了第一行数据,并在read_csv中添加了low_memory = false选项,就像以前对类似问题的回答中所建议的那样,但错误仍然存在。
有什么线索导致这个错误吗?
1条答案
按热度按时间db2dz4w81#
即使你确信
amount
dtype是正确的,也会出现错误。我提出了一个解决方案,使用pd.read_csv
函数的converters
参数来调试错误值:data.csv
:注意,第一行的第三列包含一个前导
$
,所以它不能被转换为float。输出: