如何将一列中包含所有值的数据帧转换为包含多列的数据帧?

2024-04-24 22:27:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自BLS的数据框架,其中的列对应于序列号、年份、周期和值。每个条目的序列号长度为20个字符,最后两个字符对应于度量类型(即01:所有员工,以千为单位,26:所有员工,3个月平均变化)。是否可以将数据框拆分为一个具有多个列的数据框(所有员工、所有员工、3个月平均变化等)?我总共需要拆分9个度量值,并且没有模式显示它们切换到不同度量值的频率,因此我不能每100个条目拆分一次数据帧,也不能拆分任何数字

数据的url为:https://download.bls.gov/pub/time.series/sm/sm.data.0.Current

数据是什么样子的:

enter image description here

我希望数据看起来像什么:

enter image description here


1条回答
网友
1楼 · 发布于 2024-04-24 22:27:08

以防您仍在寻找解决方案。采纳ansev关于使用数据透视表的建议:

df['measure']=df['series_id'].str[18:20]
df['series_id']=df['series_id'].str[:18]
dat=df.pivot_table(index=['series_id','year','period'],values='value',
               columns=['measure']).reset_index()
# To rename columns
names={'01':'All Employees','26':'All Employees, 3-month change'}
dat=dat.rename(columns=names)

相关问题 更多 >