2017-11-03 9 views
1

私はしばらく前から出てきた問題を理解しようとしていましたが、何とか解決策を見つけることができません。既存のパンダのデータフレームにnp配列を追加する

私はすでに値で満たされているパンダのデータフレームを作成しました、のは、(4,3)の寸法を言わせ

df= 
    A B C 
0 valX valX valX 
1 valY valY valY 
2 valZ valZ valZ 
3 valW valW valW 

私は今、何をしたいのか、10の追加の列を追加でそれぞれがnumpyのを含みます38個のゼロで満たされた配列。

私の解決策は、最初に配列を文字列にキャストして元のdfに追加したときに動作しているようです。

しかし、Pandasは単純な数字の配列を受け入れません。 列の値がnumpyの配列である必要があります。後でsklearn計算を行う予定です。

後で私のコードで、特定の列を特定の文字のワンホットエンコーディングに置き換えます。残りの列はゼロパディングとして機能します。 (10列を追加するために働く)私のコードの

例:

#create empty array 
x = np.zeros(38) 
for i in range(0, 10): 
    col_name = "char_" + str(i) 

    df[col_name] = str(x) 

ここでの問題は、私は文字列にXをキャストする必要があるということです。

ValueError: Length of values does not match length of index 
+0

あなたはDF [COL_NAME] = x.astype 'が必要です(STR私はnumpyの配列としてそれを維持した場合、それは私に、このエラーがスローされます) '? – jezrael

+0

こんにちは、あなたの答えに感謝します。上の例では、配列の代わりに文字列をdfに追加するだけです。 –

答えて

1

用途:

x = np.zeros(38) 
for i in range(0, 10): 
    col_name = "char_" + str(i) 

    df[col_name] = pd.Series([x], index=df.index) 

print (type(df.loc[0,'char_9'])) 
<class 'numpy.ndarray'> 
+0

Jezrael、あなたはこれを確認できますかhttps://stackoverflow.com/questions/47095122/removing-duplicates-with-ignoring-case-sensitive-and-ding-the-next-column-valu – pyd

+0

これは私が必要としていたものです。どうもありがとうございます! –

+0

@ StormyJ.Mireles - あなたはようこそ!私の答えが役に立ったら、[accept](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。答えの横にあるチェックマーク( '✓')をクリックしてグレー表示にします記入してください。ありがとう。 – jezrael

関連する問題