gpt4 book ai didi

python - Pandas 申请改变数据类型

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:54 27 4
gpt4 key购买 nike

我正在尝试将 Pandas 数据框转换为一系列元组:

示例输入:

df = pd.DataFrame([[1,2,3.0],[3,4,5.0]])

期望的输出:

0    (1, 2, 3.0)
1 (3, 4, 5.0)
dtype: object

但是 pandas 似乎将我的整数列强制转换为 float 。

我试过了

import pandas as pd

df = pd.DataFrame([[1,2,3.0],[3,4,5]])
print(df)
print(df.dtypes)
print(df.apply(tuple,axis=1,reduce=False).apply(str))

实际输出:

   0  1    2
0 1 2 3.0
1 3 4 5.0

0 int64
1 int64
2 float64
dtype: object

0 (1.0, 2.0, 3.0)
1 (3.0, 4.0, 5.0)
dtype: object

This question建议使用 reduce=False 但这对我来说没有任何改变。

有人能解释一下为什么 pandas 会在某个地方强制转换数据类型吗?

最佳答案

pandas.DataFrame.itertuples

避免将整数强制转换为 float

pd.Series([*df.itertuples(index=False)])

0 (1, 2, 3.0)
1 (3, 4, 5.0)
dtype: object

zip, map, splat... 魔法

pd.Series([*zip(*map(df.get, df))])

0 (1, 2, 3.0)
1 (3, 4, 5.0)
dtype: object

关于python - Pandas 申请改变数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52078594/

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