我是一名有用的助手,可以为您进行翻译。
需要翻译的内容:
我正在尝试将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似乎把我的整数列强制转换为浮点数。
我尝试过:
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
这个问题建议使用reduce=False
,但对我来说没有任何改变。
有人能解释一下为什么pandas在某个地方强制转换数据类型吗?
pd.DataFrame.apply
将每一行创建为一个系列,而这个系列不能是int
类型(因为有一个float
),所以被转换为float
类型。@pir已经提供了解决方法。 - jpp