首页 > 解决方案 > 读取数据框时获取浮点值

问题描述

我的 csv 文件中有 Sr.no 列,其中包含所有整数值,但会将其作为 pandas 数据框读取,一些整数值会转换为浮点数,为什么?

我的数据集包含以下记录

当我将它加载为数据框时,它显示如下

这些是同一数据集的第 n 条记录

但是这次在 Data Frame SR.NO 列中显示的是浮点值

标签: pythonpandascsvdata-sciencedata-analysis

解决方案


这是类型统治。
检查这个例子:

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))


    A   B
0   1   2
1   3   4  <---- ALL INTEGERS

和:

df2 = pd.DataFrame([[np.nan, 6], [7, 8]], columns=list('AB'))

    A   B
0   NaN 6
1   7.0 8 <-- NOT INTEGER

你可以看到,7 -> 7.0。
和更多:

df.append(df2, ignore_index=True)

    A   B
0   1.0 2
1   3.0 4
2   NaN 6
3   7.0 8

Pandas 自动定义列的类型。
要更改此设置,请使用pd.read_csv(..., dtype={'PUT_COL_NAME_HERE': PUT_TYPE_HERE})pd.astype()


推荐阅读