首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转置的混合类型DataFrame的数据类型不正确

问转置的混合类型DataFrame的数据类型不正确
EN

Stack Overflow用户
提问于 2019-12-08 12:15:49
回答 1查看 102关注 0票数 1

我在处理转置数据帧的数据类型时遇到了困难。

下面的示例改编自DataFrame.transpose()文档。kids列的整数类型保留在转置后的数据帧中,如文档所示。

代码语言:javascript
复制
>>> df = pd.DataFrame({'name': ['Alice', 'Bob'],
... 'score': [9.5, 8.6],
... 'employed': [False, True],
... 'kids': [5, 6]})
>>> df
    name  score  employed  kids
0  Alice    9.5     False     5
1    Bob    8.6      True     6
>>> df.T
              0     1
name      Alice   Bob
score       9.5   8.6
employed  False  True
kids          5     6

但是,如果我删除其中两列,使得只有一个浮点型列和一个整型列,则转置后的dataframe中的所有值都会转换为浮点型。

代码语言:javascript
复制
>>> pd.DataFrame({'score': [9.5, 8.6],
... 'kids': [5, 6]}).T
         0    1
score  9.5  8.6
kids   5.0  6.0

为什么会发生这种情况?有没有办法防止这种情况发生?

EN

回答 1

Stack Overflow用户

发布于 2019-12-08 15:13:53

在docs中,您提供了位于底部的原因的答案

当DataFrame有混合的数据类型时,我们得到一个带有对象数据类型的转置DataFrame

在本例中,int和float使"parent“类型为浮点型,因此所有内容都转换为浮点型

至于预防,不是真的,除非你同意对象数据类型,这是一种变通办法。

代码语言:javascript
复制
df
    name  score  employed  kids
0  Alice    9.5     False     5
1    Bob    8.6      True     6

print(df.T.drop(['name', 'employed']))
代码语言:javascript
复制
         0    1
score  9.5  8.6
kids     5    6

source code也解释了这一事实,但我似乎找不到原因

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59232388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档