2. 用melt清理变量值作为列名

  1. # 读取state_fruit2数据集
  2. In[11]: state_fruit2 = pd.read_csv('data/state_fruit2.csv')
  3. state_fruit2
  4. out[11]:

2. 用melt清理变量值作为列名 - 图1

  1. # 使用melt方法,将列传给id_vars和value_vars。melt可以将原先的列名作为变量,原先的值作为值。
  2. In[12]: state_fruit2.melt(id_vars=['State'],
  3. value_vars=['Apple', 'Orange', 'Banana'])
  4. out[12]:

2. 用melt清理变量值作为列名 - 图2

  1. # 随意设定一个行索引
  2. In[13]: state_fruit2.index=list('abc')
  3. state_fruit2.index.name = 'letter'
  4. In[14]: state_fruit2
  5. out[14]:

2. 用melt清理变量值作为列名 - 图3

  1. # var_name和value_name可以用来重命名新生成的变量列和值的列
  2. In[15]: state_fruit2.melt(id_vars=['State'],
  3. value_vars=['Apple', 'Orange', 'Banana'],
  4. var_name='Fruit',
  5. value_name='Weight')
  6. out[15]:

2. 用melt清理变量值作为列名 - 图4

  1. # 如果你想让所有值都位于一列,旧的列标签位于另一列,可以直接使用melt
  2. In[16]: state_fruit2.melt()
  3. out[16]:

2. 用melt清理变量值作为列名 - 图5

  1. # 要指明id变量,只需使用id_vars参数
  2. In[17]: state_fruit2.melt(id_vars='State')
  3. out[17]:

2. 用melt清理变量值作为列名 - 图6