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

如何将多城市污染物数据的宽格式Pandas DataFrame转换为长格式?

解决Pandas宽表转长表的方法

Hey there! 要把你给出的宽格式DataFrame转换成目标长格式,用Pandas内置的melt()方法就能完美实现,这是处理这类数据重塑需求的常规操作,下面一步步来:

1. 先构造原始宽格式DataFrame

首先我们先复现你给出的宽表数据:

import pandas as pd

df_wide = pd.DataFrame({
    'Pollutant': ['PM25', 'Ozone', 'NO2'],
    'Delhi': [12, 120, 192],
    'London': [36, 34, 35],
    'Paris': [43, 42, 12]
})

2. 使用melt()进行格式转换

核心代码就这几行,参数设置很直观:

df_long = df_wide.melt(
    id_vars='Pollutant',  # 指定不需要被重塑的标识列,这里就是污染物名称
    var_name='City',      # 把原来的城市列名映射成新列的名称
    value_name='Level'    # 把原来各城市列的数值映射成新列的名称
)

3. 转换结果说明

执行完上面的代码后,df_long就是你想要的长格式DataFrame:

PollutantCityLevel
PM25Delhi12
OzoneDelhi120
NO2Delhi192
PM25London36
OzoneLondon34
NO2London35
PM25Paris43
OzoneParis42
NO2Paris12

简单说下melt()的逻辑:它会把指定的非标识列(这里是Delhi、London、Paris)“融化”成两列——一列存原来的列名(City),一列存对应的值(Level),同时保留标识列(Pollutant)的每行数据和新列对应匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 19:08:11