相关疑难解决方法(0)

当通过apply传递给函数时,pandas列的数据类型会更改为对象吗?

我需要dtype在函数中使用pandas列,但由于某种原因,当我使用函数调用时apply,dtype更改为object.有谁知道这里发生了什么?

import pandas as pd

df = pd.DataFrame({'stringcol':['a'], 'floatcol': [1.5]})
df.dtypes
Out[1]: 
floatcol     float64
stringcol     object
dtype: object

df.apply(lambda col: col.dtype)
Out[2]: 
floatcol     object
stringcol    object
dtype: object
Run Code Online (Sandbox Code Playgroud)

请注意,如果直接传递列,则不会发生此问题:

f = lambda col: col.dtype
f(test.floatcol)
Out[3]: dtype('float64')
Run Code Online (Sandbox Code Playgroud)

python pandas

9
推荐指数
1
解决办法
1095
查看次数

大熊猫应用更改 dtype

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

示例输入:

df = pd.DataFrame([[1,2,3.0],[3,4,5.0]])
Run Code Online (Sandbox Code Playgroud)

期望输出:

0    (1, 2, 3.0)
1    (3, 4, 5.0)
dtype: object    
Run Code Online (Sandbox Code Playgroud)

然而,熊猫似乎强迫我的整数列浮动。

我试过

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))
Run Code Online (Sandbox Code Playgroud)

实际输出:

   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
Run Code Online (Sandbox Code Playgroud)

这个问题建议使用,reduce=False但这对我来说没有任何改变。

有人能解释为什么大熊猫在途中强制某个地方的数据类型吗?

python python-3.x pandas

5
推荐指数
1
解决办法
455
查看次数

标签 统计

pandas ×2

python ×2

python-3.x ×1