用 pandas 把宽数据转换为长数据

在进行数据分析的时候,整洁的数据结构可以帮助分析师更简单高效地进行处理、建模、和可视化。今天我们来看怎么把列名称是数据值,而非变量名的这种数据转换为整洁的数据结构。

今天要处理的数据如下:

原数据的列中有第一周、第二周这种数据值的列名,通常整洁的数据各式中,列名应该是变量名,数据值应该是列的值。要想达到这个目的,我们可以用 pd.melt 快速达到我们的目的。

详细代码如下:

import pandas as pd
import numpy as np
df = pd.read_csv('billboard.csv')
df = pd.melt(df, id_vars=list(df.columns)[:5], value_vars=list(df.columns)[5:],
             var_name='week', value_name='rank')
df['week'] = df['week'].str[2:].astype(int)
df.head()

本次所用到的源文件: https://pan.baidu.com/s/1Bjxqu6OIsgrIWIauqJ4qPA 提取码: a8bw

欢迎关注我的公众号。

发表评论

电子邮件地址不会被公开。