gpt4 book ai didi

python - 复制一行搞砸了 pandas 列数据类型,如何避免?

转载 作者:太空狗 更新时间:2023-10-30 03:01:21 25 4
gpt4 key购买 nike

如果在生成带有一些 bool 列的 Pandas 数据框后,我得到了列的适当数据类型。

>>> individuals = pandas.DataFrame([[True, 1],[False, 1]],
... columns = ["female","fitness"])
...
>>> print(individuals["female"])
0 True
1 False
Name: female, dtype: bool

但是当我通过复制一个已经存在的行来添加另一行时,这会中断:

>>> individuals.loc[2] = individuals.loc[1]
>>> print(individuals["female"])
0 True
1 False
2 False
Name: female, dtype: object

对于我的 “fitness” 专栏,我改为从 int64 切换到 float64,这也不是最佳选择(但稍微好一些,因为至少 float64 仍然是数字数据类型,这是我后续代码偶然发现的)。有没有一种简单的方法可以避免这种情况,例如。通过使用不同的方法来复制行?

最佳答案

你应该使用.append。用于有意扩展的 .loc 语法不会在多数据类型的情况下保留数据类型。这将在 0.15.0 中修复

In [18]: individuals.append(individuals.loc[1])
Out[18]:
female fitness
0 True 1
1 False 1
1 False 1

In [19]: individuals.append(individuals.loc[1]).dtypes
Out[19]:
female bool
fitness int64
dtype: object

关于python - 复制一行搞砸了 pandas 列数据类型,如何避免?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25670760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com