2017-07-19 1 views
1

私のパンダDataFrameの中には、各行に辞書または辞書が入っている列があります。私は「A」と「B」の列として、またはしかしながら多くでデータフレームを作るために必要Python Pandas DataFrame:dictsで構成された列をdictsのキーによって決定される複数の列に処理する方法は?

行の1つに含まれるであろう。例えば

「{2 『』:1、 『B』}」固有のキーは列に含まれるすべての辞書にあります。

たとえば、「{'a':1、 'b':2}」が含まれ、別の行に「{'a':1、 'c':2}」が含まれている場合、DataFrame 'a'、 'b'、および 'c'を列として使用します。列名はdictsのキーになり、行にはdictsの値が入ります。 DataFrameのインデックスは、元のインデックスと同じになります。

ありがとうございます。

答えて

3

私はあなたがlistに、その後valuesによってnumpy arraydata列を変換してDataFrameコンストラクタを使用することができると思う:

#borrowing sample from DeepSpace's answer 
df = pd.DataFrame({'data': [{'a': 1, 'b': 2}, {'a': 3, 'c': 4}]}) 
print (df) 
       data 
0 {'a': 1, 'b': 2} 
1 {'a': 3, 'c': 4} 

df1 = pd.DataFrame(df['data'].values.tolist(), index=df.index) 
print (df1) 
    a b c 
0 1 2.0 NaN 
1 3 NaN 4.0 
+0

私の答えはばかげて見えるようにしてくれてありがとう;)。 – DeepSpace

+0

なぜパンダ(またはnumpy?)がintとして「1」と「3」を残したが、「2」と「4」が浮動小数点になったのか? – DeepSpace

+1

。列のNaNの値が浮動小数点型にキャストされるためです。 – jezrael

関連する問題