Pandas Unstack Data and Write to CSV

时间:2016-03-08 13:16:18

标签: python postgresql csv pandas

这个问题已被问了一千次问题。但我无法找到上述问题或链接,所以任何知道此事的人都应该帮助我。

我有一个数据库,我查询数据。 获取数据后,我将其加载到大熊猫中。我需要的是一种堆叠/取消堆叠数据的有效方法

E.g

Data:
user_id   data_type      data_value
  2        gender          male
  3        age              32
  2        work_experience  None
  5        work_experience  Engineer

如何重新排列此数据,以便

New Data:
user_id gender age work_experience
  2      male   ''    None 
  3      ''     32     ''
  5      ''     ''     Engineer
  • 请注意,data_type有超过30个不同的值
  • 同样在获取此格式的数据后,我需要写入csv ...这部分我认为很容易。但是我非常喜欢这方面的帮助。感谢

1 个答案:

答案 0 :(得分:1)

使用pd.pivot_table

In [644]: df
Out[644]:
   user_id        data_type data_value
0        2           gender       male
1        3              age         32
2        2  work_experience       None
3        5  work_experience   Engineer

In [645]: pd.pivot_table(df, index='user_id',
   .....:                values='data_value', columns='data_type',
   .....:                aggfunc='sum')
Out[645]:
data_type  age gender work_experience
user_id
2          NaN   male            None
3           32    NaN             NaN
5          NaN    NaN        Engineer

使用pivot_result.to_csv('file.csv')将结果存储在csv。