gpt4 book ai didi

python - 将函数应用于 pandas Python 中的每一行时出现数据转换错误

转载 作者:太空狗 更新时间:2023-10-29 20:51:19 25 4
gpt4 key购买 nike

我在 python 中的 pandas 中有一个数据框,类似于这样的东西 -

    contest_login_count  contest_participation_count  ipn_ratio
0 1 1 0.000000
1 3 3 0.083333
2 3 3 0.000000
3 3 3 0.066667
4 5 13 0.102804
5 2 3 0.407407
6 1 3 0.000000
7 1 2 0.000000
8 53 91 0.264151
9 1 2 0.000000

现在我想对这个数据帧的每一行应用一个函数函数是这样写的-

def findCluster(clusterModel,data):
return clusterModel.predict(data)

我以这种方式将此函数应用于每一行 -

df_fil.apply(lambda x : findCluster(cluster_all,x.reshape(1,-1)),axis=1)

当我运行这段代码时,我收到一条警告:

DataConversionWarning: Data with input dtype object was converted to float64.

warnings.warn(msg, DataConversionWarning)

此警告每行打印一次。因为,我的数据框中有大约 450K 行,我的计算机在 ipython 笔记本上打印所有这些警告消息时挂起。

但为了测试我的功能,我创建了一个虚拟数据框并尝试在其上应用相同的功能并且效果很好。这是它的代码 -

t = pd.DataFrame([[10.35,100.93,0.15],[10.35,100.93,0.15]])
t.apply(lambda x:findCluster(cluster_all,x.reshape(1,-1)),axis=1)

这个的输出是 -

   0  1  2
0 4 4 4
1 4 4 4

任何人都可以建议我做错了什么或者我可以改变什么来消除这个错误吗?

最佳答案

我认为某些列的 dtype 不是 float 有问题。

你需要用 astype 转换它:

df['colname'] = df['colname'].astype(float)

关于python - 将函数应用于 pandas Python 中的每一行时出现数据转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39214164/

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