pandas in pythonこれは次のようなものです。
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:入力dtypeオブジェクトを持つデータは、float64に変換されました。
warnings.warn(msg、DataConversionWarning)
この警告は、行ごとに1回出力されます。データフレームに約45万行あるため、これらの警告メッセージをすべて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
誰かが私が間違っていることを提案したり、このエラーを解消するために何を変更したりできますか?