【发布时间】:2020-06-22 06:49:52
【问题描述】:
请帮我从字典列表中创建一个数据框
Dataset = [{'A': ' X1'}, {'B': ' Y1'}, {'A': ' X2'}, {'B': ' Y2'}, {'A': ' X3'}, {'B': ' Y3'}, {'C': ' Z3'}]
输出应该是:
【问题讨论】:
-
你能告诉我们你到目前为止做了什么吗?
请帮我从字典列表中创建一个数据框
Dataset = [{'A': ' X1'}, {'B': ' Y1'}, {'A': ' X2'}, {'B': ' Y2'}, {'A': ' X3'}, {'B': ' Y3'}, {'C': ' Z3'}]
输出应该是:
【问题讨论】:
您可以使用defaultdict 和pandas 的from_dict 方法。诀窍是使用 orient 参数并转置数据帧以处理 C 列中的缺失值
def cast_to_dataframe(_ds):
"""
Cast the given list of dictionaries to one dataframe
:param _ds: List of dictionaries
:return: DataFrame
"""
final_dict = defaultdict(list)
# Iterate through each dictionary in _ds
for d in _ds:
for key, value in d.items():
final_dict[key].append(value)
# Cast back to dict
final_dict = dict(final_dict)
df = pd.DataFrame.from_dict(final_dict, orient='index')
return df.transpose()
dataset = [{'A': ' X1'}, {'B': ' Y1'}, {'A': ' X2'}, {'B': ' Y2'}, {'A': ' X3'}, {'B': ' Y3'}, {'C': ' Z3'}]
cast_to_dataframe(dataset)
【讨论】: