Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫数据框将整数显示为浮点数_Python_Pandas_Dataframe - Fatal编程技术网

Python 熊猫数据框将整数显示为浮点数

Python 熊猫数据框将整数显示为浮点数,python,pandas,dataframe,Python,Pandas,Dataframe,熊猫数据框将整数显示为浮点数。 但我想把这些整数显示为整数 X_train = train.iloc[:, 1:].values.astype('float32') y_train = train.iloc[:, 0].values.astype('uint8') X = test.values.astype('float32') 因此,数据类型是“float32”、“unit8”和“float32” 在数据帧中显示X_列、y_列和X的最小值和最大值(在Jupyter笔记本中) 输出:

熊猫数据框将整数显示为浮点数。 但我想把这些整数显示为整数

X_train = train.iloc[:, 1:].values.astype('float32')
y_train = train.iloc[:, 0].values.astype('uint8')
X = test.values.astype('float32')
因此,数据类型是“float32”、“unit8”和“float32”

在数据帧中显示X_列、y_列和X的最小值和最大值(在Jupyter笔记本中)

输出:

        min max
X_train 0.0 255.0
y_train 0.0 9.0
X       0.0 255.0
但我希望:

        min max
X_train 0.0 255.0
y_train 0   9
X       0.0 255.0
但是

print(np.amax(y_train))
输出到9(不是9.0)


有什么建议吗?

默认情况下,
数据帧由相同类型的元素组成的2D数组组成,因为它由NumPy 2D数组支持。在本例中,一些值是浮点值,因此它选择浮点类型。如果希望有不同类型的行,则需要将它们作为单独的系列添加。有关更多信息,请参阅。

pandas
按列键入内容。因此,每列都有一个特定的
dtype
。它确定向上转换
int
更好,这样整个列可以是
float
,而不是将列保留为dtype
对象

df = pd.DataFrame([
    [0., 255.],
    [0, 9],
    [0., 255.]
])

df

     0      1
0  0.0  255.0
1  0.0    9.0
2  0.0  255.0


使用
dtype=object
保留各个类型

df = pd.DataFrame([
    [0., 255.],
    [0, 9],
    [0., 255.]
], dtype=object)

df

   0    1
0  0  255
1  0    9
2  0  255


df.applymap(类型)
0                1
0
1.
2.


我只会将此用于报告目的。如果您想将其用于进一步的计算,您将失去许多效率。我会花时间重新排列您的数据。

列不能有混合的数据类型,除非您对整个列使用
dtype=object
,在这种情况下,您甚至可以不使用
pandas
。因此,
pandas
(或者可能是底层的
numpy
数组)使用了类型提升来
float32
谢谢!没错,数据帧中的每一列都有自己的数据类型。交换行和列后,它将提供所需的输出。
df.dtypes

0    float64
1    float64
dtype: object
df = pd.DataFrame([
    [0., 255.],
    [0, 9],
    [0., 255.]
], dtype=object)

df

   0    1
0  0  255
1  0    9
2  0  255
df.dtypes

0    object
1    object
dtype: object
df.applymap(type)

                 0                1
0  <class 'float'>  <class 'float'>
1    <class 'int'>    <class 'int'>
2  <class 'float'>  <class 'float'>