2017-09-13 9 views
0

は、私は辞書を持っていると仮定し、私はdfに行として値を追加する必要があり、同じキーを持つ新しい辞書を作成パンダのDataFrameへの辞書値のインクリメンタルな追加。辞書のキーの列名とデータフレームは

dict = {'a':1,'b':2,'c':3} 
df = pd.DataFrame(columns = ['a','b','c']) 

たびとしてパンダのデータフレームを作成します。最初はdfに行がなく、インデックスは割り当てられていません。私が気づいているのは、使用しているのです

df.append(pd.Series(), ignore_index=True) 

しかし、これは列の追加を続けます。また、辞書は命令を持たないので、list(dict.values())のようなハードコーディングは、挿入する前に順序をランダム化します。dfの行として作成したリストは、特にdictを更新していますか?

答えて

1

あなたが同じ列を持つデータフレームを使用している場合、あなたはconcatを使用して検討する必要があります。

pd.concat([df1, df2]) 

あなたはAPPENDを使用したい場合、あなたはdfvalues辞書を持っていると仮定は:

values = {'a':1,'b':2,'c':3} 
df = df.append(pd.Series(values), ignore_index=True) 
+2

'df.append(値、ignore_index =真)'十分です:私は、データフレームのコンストラクタに辞書を渡すと、より効率的/より高速な方法があるかもしれませんがpd.concat()を使用してこれを行うだろう。 – Goyo

0

最初のDataFrameを作成した後:

df = pd.DataFrame(columns = ['a','b','c']) 
df 
Empty DataFrame 
Columns: [a, b, c] 
Index: [] 

これで、一致する列を持つ辞書を追加できます。

from_dict = pd.DataFrame({k: [v] for (k, v) in dic.items()}) 
df = pd.concat([df, from_dict]) #default axis = 0 
df 
    a b c 
0 1.0 2.0 3.0 
関連する問題