pandas 创建列表并维护整数值

inb24sb2  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(106)

我对Python有点陌生。
我试图在将一个特定列的数据类型更改为整数后,将 Dataframe 转换为列表。有趣的是,当转换为列表时,该列仍然具有浮点数。
Dataframe 中有三列,前两列是浮点数,我希望最后一列是整数,但它仍然是浮点数。
如果我把all改为integer,那么列表将创建为integer。

0   1.53    3.13    0.0
1   0.58    2.83    0.0
2   0.28    2.69    0.0 
3   1.14    2.14    0.0
4   1.46    3.39    0.0
... ... ... ...

2001年12月31日终了的两年期收入和支出及准备金和基金结余变动表
以上是数据框架。
下面是转换的最后一列

#convert last column to integer datatype
data[6] = data[6].astype(dtype ='int64')
display(data.dtypes)

下面是将 Dataframe 转换为列表。

#Turn DF to list
data_to_List = data.values.tolist()
data_to_List

下面是现在显示的内容。

[[1.53, 3.13, 0.0],
[0.58, 2.83, 0.0],
[0.28, 2.69, 0.0],
[1.14, 2.14, 0.0],
[3.54, 0.75, 1.0],
[3.04, 0.15, 1.0],
[2.49, 0.15, 1.0],
[2.27, 0.39, 1.0],
[3.65, 1.5, 1.0],

我希望最后一列仅为0或1,而不是0.0或1.0

vltsax25

vltsax251#

是的,你说得对,Pandas在使用data.values时,将int转换为float
您可以使用以下列表解析将float转换为int

data_to_List = [[x[0],x[1],int(x[2])] for x in data.values.tolist()]

print(data_to_List)

[[1.53, 3.13, 0],
 [0.58, 2.83, 0],
 [0.28, 2.69, 0],
 [1.14, 2.14, 0],
 [1.46, 3.39, 0]]

相关问题