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

使用Pandas处理COVID确诊CSV数据 将日期列转为行、国家列为列

解决方案

你已经完成了长表转换的步骤,后续只需要先合并同国家同日期的确诊数据,再做宽表转换即可,具体操作如下:

方法1:基于你现有已生成的df_piv继续处理

由于原数据中部分国家存在多条省级拆分数据,需要先按国家和日期聚合总确诊数,再通过pivot转成目标结构:

# 1. 聚合同一国家同一日期的累计确诊数
df_agg = df_piv.groupby(['Country/Region', 'Date'], as_index=False)['Value'].sum()

# 2. 转换为以Date为索引、国家为列的宽表
df_target = df_agg.pivot(index='Date', columns='Country/Region', values='Value').reset_index()

# 3. 可选操作:移除列名的层级标识,输出更整洁
df_target.columns.name = None

处理完成后df_target就是你需要的结构。

方法2:更简便的省略melt步骤的写法

你也可以直接跳过melt步骤,通过设置索引转置直接得到结果,代码更简洁:

import pandas as pd

url_confirmed = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv'
df = pd.read_csv(url_confirmed)

# 移除不需要的列
df = df.drop(columns=['Province/State','Lat','Long'],axis=1)

# 按国家聚合后直接转置
df_target = df.groupby('Country/Region').sum().T.reset_index().rename(columns={'index':'Date'})
df_target.columns.name = None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:45:04