如何在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
相关产品推荐
相关产品推荐

