You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中访问字典式DataFrame的指定键值(如Kwh1)

获取DataFrame中特定键(如Kwh1)对应的数据

根据你的数据形式,分两种常见情况处理:

情况1:DataFrame的列名就是Kwh1、Kwh2等(标准结构化DataFrame)

这是最常见的场景,直接通过列索引即可获取:

  • 获取单列Series:
    kwh1_series = df['Kwh1']
    
  • 获取单列DataFrame(保持二维结构):
    kwh1_df = df[['Kwh1']]
    

如果列名没有空格、特殊字符,也可以用点属性简化:

kwh1_series = df.Kwh1

情况2:DataFrame的某列存储字典(你的示例看起来像每行是一个字典)

如果你的DataFrame里是某一列(比如命名为data)存放着示例中的字典,需要先提取字典内的Kwh1值:

方法1:用apply提取

# 新增Kwh1列,提取字典中的对应值
df['Kwh1'] = df['data'].apply(lambda x: x['Kwh1'])
# 获取Kwh1对应的DataFrame
kwh1_df = df[['Kwh1']]

方法2:用pd.json_normalize展开字典列

如果需要一次性展开所有字典键为列,推荐用这个方法:

import pandas as pd
# 将字典列展开为结构化DataFrame
df_normalized = pd.json_normalize(df['data'])
# 再提取Kwh1列
kwh1_df = df_normalized[['Kwh1']]

模拟示例代码

以你的数据为例,完整可运行的代码:

import pandas as pd

# 模拟数据(对应情况1)
raw_data = [
    {'Kwh1': '3750.13', 'Kwh2': '3456.04'},
    {'Kwh1': '3750.14', 'Kwh2': '3456.04'},
    {'Kwh1': '3750.15', 'Kwh2': '3456.04'}
]
df = pd.DataFrame(raw_data)

# 获取Kwh1的DataFrame
kwh1_df = df[['Kwh1']]
print(kwh1_df)

内容的提问来源于stack exchange,提问作者check_my_code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:25:09