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'>