2017-04-30 4 views
2

データフレーム内のリスト値を変更するにはどうすればよいですか?私はどのように私はdatafamesを変更することができますオプションで唯一の「A」と「C」キー/値を使用したい場合はDataFrameのdictonariesを変更するには?

Dataframe df: 
    id options 
0 0  [{'a':1 ,'b':2, 'c':3, 'd':4}] 
1 1  [{'a':5 ,'b':6, 'c':7, 'd':8}] 
2 2  [{'a':9 ,'b':10, 'c':11, 'd':12}] 

:私はJSONとデータフレームで受信したデータを調整するために、以下のようにされてしようとしていますか?期待される結果は次のようになります。

Dataframe df: 
    id options 
0 0  [{'a':1 ,'c':3}] 
1 1  [{'a':5 ,'c':7}] 
2 2  [{'a':9 ,'c':11}] 

答えて

0

あなたがエントリを変更するだけでapply機能することができる:

>>> df.options = df.options.apply(lambda x: [{k: v for k, v in x[0].items() if k in ('a', 'c')}]) 
>>> df 
    id    options 
0 0 [{'a': 1, 'c': 3}] 
1 1 [{'a': 5, 'c': 7}] 
2 2 [{'a': 9, 'c': 11}] 
0

ここだけ特定のキーを使用して新しい辞書を作成するには、リストの内包表記を使用した例です:

df['options'] = [[{'a': x[0]['a'], 'c': x[0]['c']}] for x in df['options']] 
関連する問題