如何将字典列表按指定key生成pandas DataFrame并支持自定义列名
import pandas as pd # 示例输入 sample_list = [{1:2.1, 2:4.5, 5:6.4}, {1:4.3, 2:5.4, 5:1}, {1:0.07, 2:9.5, 5:7.1}] target_key = 2
提取指定key生成对应列名的DataFrame
两种常用实现方式:
- 方式1:用pandas内置的
from_records方法直接指定要提取的列,代码最简
df = pd.DataFrame.from_records(sample_list, columns=[target_key])
- 方式2:手动遍历提取值后构造,适合需要对值做额外预处理的场景,同时可以处理字典无对应key的情况(避免KeyError)
# 不存在目标key时默认填充NaN values = [d.get(target_key) for d in sample_list] df = pd.DataFrame(values, columns=[target_key])
运行后得到列名为2的DataFrame,输出如下:
2 0 4.50 1 5.40 2 9.50
对生成的列进行重命名
两种常用实现方案:
- 方案1:构造DataFrame时直接指定新列名,无需二次修改
df = pd.DataFrame([d.get(target_key) for d in sample_list], columns=['two'])
- 方案2:对已生成的DataFrame执行重命名操作,适合多列批量重命名的场景
# 先提取得到列名为2的DataFrame df = pd.DataFrame.from_records(sample_list, columns=[target_key]) # 执行重命名 df = df.rename(columns={target_key: 'two'})
运行后得到列名为two的DataFrame,输出如下:
two 0 4.50 1 5.40 2 9.50
内容的提问来源于stack exchange,提问作者stacky
相关产品推荐
相关产品推荐

