2017-05-13 8 views
1

私はループ内で辞書を作成し、dictの一致するキー名とデータフレームの列名を持つpandasデータフレームに追加する必要があります。各反復での辞書のキー値のペアは異なる場合があります。空のパンダのデータフレームdf_podcastは、最初に辞書内のすべての可能なキーで定義されています。ループ内でpandasデータフレームに辞書を追加する

以下はまだ

df_podcast=pd.DataFrame(columns=podcast_cols) 

podcast_dict={} 
for j in range(len(podcast[0])): 
    if podcast[0][j].tag=="key": 
     podcast_dict[podcast[0][j].text]=podcast[0][j+1].text 
### Have to append dict to pandas df ############ 

私はdf_podcastするpodcast_dictを追加しています完了していないされているコードのサンプルです。ポッドキャストは、ここで私はちょうどリストの唯一の1行目を検討している、実際にはリストのリストである

+0

最後のループが可能です 'df = pd.DataFrame(podcast_dict)'を使用しますか? – jezrael

+0

ここの答えは非常に役に立ちます:https://stackoverflow.com/questions/40973687/create-new-dataframe-in-pandas-with-dynamic-names-also-add-new-column –

答えて

0

IIUC:

何をする必要が、その後の終わりには、その後、あなたのループを使って辞書を構築することですあなた

df1 = pd.DataFrame(podcast_dict) 

そしてpd.concatを使用して追加します:ループ、あなたがデータフレームを作成するためにあなたの辞書を使用することができます

df_podcast = pd.concat([df_podcast, df1]) 
+0

答えのためにスコットに感謝します。しかし、キーの名前は、私の辞書のキーの値のペアなどの各反復ごとに異なります。辞書のキーとデータフレームの列名が一致するデータフレームに値を挿入します。 例: - 最初の反復辞書にアイテム{"トラックID":100、 "再生回数":10}が2つしかない場合。データフレームの最初の行のトラックIDと再生回数の列にのみ値を挿入する必要があります。 – Leo

+0

試しましたか? Pandasは自動的なインデックスの整列を行い、columnはインデックスです。私は、問題を確認して注文するためにいくつかのダミーデータを試してみました。 –

0
df = pd.DataFrame([podcast_dict],columns=podcast_dict.keys()) 
df_podcast=pd.concat([df_podcast,df],axis =0).reset_index() 
関連する問題