発生例外:データは1次元でなければなりません。パンダ内でのnpの変形適用
私はこの問題を明確にするためにおもちゃの例を提示します。
import pandas as pd
import numpy as np
初期データフレーム:numpyの配列に
df = pd.DataFrame({"A": [[10,15,12,14],[20,30,10,43]], "R":[2,2] ,"C":[2,2]})
>>df
A C R
0 [10, 15, 12, 14] 2 2
1 [20, 30, 10, 43] 2 2
変換と再構築:
df['A'] = df['A'].apply(lambda x: np.array(x))
df.apply(lambda x: print(x[0],(x[1],x[2])) ,axis=1)
df['A_reshaped'] = df.apply(lambda x[['A','R','C']]: np.reshape(x[0],(x[1],x[2])),axis=1)
df
A C R A_reshaped
0 [10, 15, 12, 14] 2 2 [[10,15],[12,14]]
1 [20, 30, 10, 43] 2 2 [[20,30],[10,43]]
を
誰かが理由を知っていますか?それはパンダの細胞の2次元配列を受け入れていないようだが、それは奇妙だ...
事前にお手伝いを!
あなたの最後のラムダは奇妙である:それは 'ラムダX 'です:' X 'としなければならないもの。ステップを戻って、あなたがしたいことを説明できますか? –
RとCによって与えられたパラメータでAの単量体配列を再形成する。この新しい行列をAに書く。 これで、期待される結果に基づいて例を編集する。 – LeoCella
これは意味があります。 'apply'は直接動作しないようですが、' zip'はそれをバイパスできます。これはいくつかの新しいオブジェクトを作成するので、私はここでベクトル化が大きな問題ではないと考えています。 –