我刚刚从 R 转换为 Python,现在我正在尝试从 csv 文件中读取数据。 我对所有整数列都被视为浮点数感到非常恼火,经过一番挖掘后,我发现这是问题所在: NumPy or Pandas: Keeping array type as integer while having a NaN value
我看到接受的答案给了我一个关于去哪里的提示,但问题是我有数百列的数据,我想这是做数据科学时的典型情况。所以我不想为每一列指定使用 read_csv
读入数据时使用的类型。这会在 R
中自动修复。
在 Python 中使用 Pandas 以正确的方式读取数据真的有那么难吗?
来源:https://pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html#optional-integer-na-support
答案 0 :(得分:1)
您可以尝试使用:
df = pd.read_csv('./file.csv', dtype='Int64')
编辑:所以这不适用于字符串。相反,尝试这样的事情:
for col in df.columns[df.isna().any()].tolist():
if df[col].dtype == 'float':
df[col] = df[col].astype('Int64')
遍历具有 NA 值的每一列并检查其类型为 float
,然后将它们转换为 Int64