python - Pandas irow() 自动将 int 转换为 float

标签 python pandas

x = DataFrame([(1,2.0),(2,4.0)], columns=['a','b'])
x.dtypes
a      int64
b    float64
a = x.irow(0)
a
output:
a    1.0
b    2.0
Name: 0, dtype: float64

为什么pandas会自动转换为float?使用 irow 后,如何将 int 列保留为 int,而不对每个字段使用 astype/cast?

最佳答案

它返回 Series对于该行,所以 dtype晋升为float由于 float 的存在在山口b

In [33]:
type(x.irow(0))

Out[33]:
pandas.core.series.Series

该方法已被弃用,您应该使用 iloc :

In [31]:
x.iloc[0]

Out[31]:
a    1.0
b    2.0
Name: 0, dtype: float64

实际上,这并不是一个真正的问题,因为访问行的特定列将保留 dtype :

In [36]:
x['a'].iloc[0]

Out[36]:
1

In [37]:
type(x['a'].iloc[0])

Out[37]:
numpy.int64

关于python - Pandas irow() 自动将 int 转换为 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37456634/

相关文章:

python - 在达到一定的准确性后,有什么方法可以停止在 Keras 中训练模型?

python - pandas 数据框按索引和整数

python - 如何将行名称添加到pandas数据框中的单元格?

python - python 将一列的括号中的字符串插入到另一列的字符串的开头

python - 需要帮助忽略按钮按下。 Tkinter

python - 这是扁平化的正确用法吗?

python - ElasticSearch 在索引整数和字符串的 JSON 数组时抛出映射器解析异常

python - 字典列表中的重复索引 Python Pandas

python - 计算跨多天的 pandas 数据框中每日最小和最大列数

python - 如何聚合 pandas 中的多列?