我有一个数据框(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
答案 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