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

如何使用Python和Pandas将DataFrame中的行转换为列(CSV数据源场景)

嘿,我来帮你搞定这个问题!要把cases数据转换成以week 1、week 2...为列的格式,本质上是把长格式数据转成宽格式,用Pandas的pivot()或pivot_table()方法就能轻松实现,我分常见场景给你讲具体操作:

场景1:CSV里已经有现成的周数列

假设你的原始CSV数据结构是这样的(比如包含分组列、周数、cases):

region,week,cases
华北,1,120
华北,2,150
华南,1,90
华南,2,110

操作步骤:

  1. 先读取CSV文件:
import pandas as pd

# 替换成你的CSV文件路径
df = pd.read_csv('your_cases_data.csv')
  1. 用pivot()转成宽格式:
    如果你的数据里,每个分组+周数的组合是唯一的(没有重复记录),直接用pivot():
# 按region作为行索引,week作为列,cases作为值
pivoted_df = df.pivot(index='region', columns='week', values='cases')

# 把列名改成"week 1"、"week 2"的格式
pivoted_df.columns = [f'week {col}' for col in pivoted_df.columns]

# 可选:把行索引(region)转成普通列
pivoted_df = pivoted_df.reset_index()

如果同一分组+周数有重复的cases记录(比如同一天多次上报),就用pivot_table()指定聚合方式(比如求和/取平均):

pivoted_df = df.pivot_table(
    index='region',
    columns='week',
    values='cases',
    aggfunc='sum'  # 可替换成'mean'、'max'等,根据你的需求选择
)

# 同样重命名列并重置索引
pivoted_df.columns = [f'week {col}' for col in pivoted_df.columns]
pivoted_df = pivoted_df.reset_index()

最终效果:

处理后的数据会变成这样:

region  week 1  week 2
0    华北     120     150
1    华南      90     110

场景2:CSV只有日期列,需要先提取周数

如果你的原始数据只有日期和cases,没有现成的周数列,那先从日期里提取周数再转格式:

假设原始CSV是这样的:

region,date,cases
华北,2024-01-01,30
华北,2024-01-05,40
华北,2024-01-08,50
华南,2024-01-02,25
华南,2024-01-06,35

操作步骤:

  1. 读取数据并转换日期格式:
import pandas as pd

df = pd.read_csv('your_cases_data.csv')
# 把date列转换成datetime类型
df['date'] = pd.to_datetime(df['date'])
  1. 提取周数:
# 提取ISO标准周数(推荐,避免跨年周数混乱)
df['week'] = df['date'].dt.isocalendar().week
  1. 然后重复场景1的pivot()或pivot_table()步骤即可,最终同样得到以week 1、week 2为列的宽格式数据。

补充小技巧:

  • 如果你的数据没有分组列(只有周数和cases),可以把index设为一个临时列,或者直接用:
pivoted_df = df.pivot(columns='week', values='cases').rename(columns=lambda x: f'week {x}').reset_index(drop=True)
  • 处理缺失值:如果某些周没有数据,结果里会出现NaN,可以用fillna(0)填充为0:pivoted_df = pivoted_df.fillna(0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:57:35