用值制作键的新列存储为字典列表中的值列表吗?

时间:2019-04-12 12:48:35

标签: python pandas

我有一个数据框(1000万行),如下所示。为了更好地理解,我对其进行了简化。

user_id     event_params
10          [{'key': 'x', 'value': '1'}, {'key': 'y', 'value': '3'}, {'key': 'z', 'value': '4'}]
11          [{'key': 'y', 'value': '5'}, {'key': 'z', 'value': '9'}]
12          [{'key': 'a', 'value': '5'}]

我要创建新列,这些列都是数据框中的唯一键,并在各个键中存储值。输出应如下所示:

user_id x   y   z   a
10      1   3   4   NA
11      NA  5   9   NA
12      NA  NA  NA  5

1 个答案:

答案 0 :(得分:0)

只需创建新的数据框并通过append函数添加新行。您可以找到更多的选择here

import pandas as pd

df = pd.DataFrame()

data = [
    [12, [{'key': 'x', 'value': '1'}, {'key': 'y', 'value': '3'}, {'key': 'z', 'value': '4'}]],
    [13, [{'key': 'a', 'value': '5'}]]
]

for user_id, event_params in data:
    record = {e['key']: e['value'] for e in event_params}
    record['user_id'] = user_id
    df = df.append(record, ignore_index=True)

df

enter image description here