python - Pandas:无法安全地将传递的用户数据类型 int32 转换为 float64

标签 python pandas validation numpy dataframe

我被使用 read_table() 将数据加载到 Pandas 数据框中的问题所困扰。错误显示 TypeError: Cannot Cast array from dtype('float64') to dtype('int32') 根据规则 'safe'ValueError: Cannot safe conversion passed user dtype of int32对于第 2 列中的 float64 dtyped 数据

测试.py:

import numpy as np
import os
import pandas as pd

# put test.csv in same folder as script
mydir = os.path.dirname(os.path.abspath(__file__))
csv_path = os.path.join(mydir, "test.csv")

df = pd.read_table(csv_path, sep=' ',
                   comment='#',
                   header=None,
                   skip_blank_lines=True,
                   names=["A", "B", "C", "D", "E", "F", "G"],
                   dtype={"A": np.int32,
                       "B": np.int32,
                       "C": np.float64,
                       "D": np.float64,
                       "E": np.float64,
                       "F": np.float64,
                       "G": np.int32})

测试.csv:

2270433 3 21322.889 11924.667 5228.753 1.0 -1 2270432 3 21322.297 11924.667 5228.605 1.0 2270433

最佳答案

问题是我使用空格作为分隔符,并且 csv 具有尾随空格。删除尾随空格解决了问题。

为了修剪目录中每个文件的每一行的所有尾随空格,我运行了以下命令: find 。 -名称“*.csv”| xargs sed -i 's/[\t]*$//'

关于python - Pandas:无法安全地将传递的用户数据类型 int32 转换为 float64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51214020/

相关文章:

python - 检查索引 Pandas 中是否包含数字的问题

java - 验证没有分隔符的 UUID "-"

python - ffmpeg如何将mpg编码为2 channel aac?

python - 从 Jinja2 模板中获取变量列表(父子)

python - 通过Python根据记录的版本迭代csv记录

Python 相当于 SQL Rank

在数据框中的列中创建值对的 Pythonic 方法

javascript - 在Python中匹配Javascript转义表单数据

javascript - Polymer:为响应服务器响应的组件编写演示和测试

python - 一个类的多个实例