熊猫:改变数据框架的视图

时间:2017-11-01 15:26:51

标签: python pandas

我有数据框

id      domain
111      vk.com
111      facebook.com
111      twitter.com
222      avito.ru
222      vk.com

欲望输出

id    domain1    domain2   domain3
111   vk.com   facebook.com  twitter.com
222   avito.ru    vk.com      NaN

我尝试转置df.T,但它起作用

2 个答案:

答案 0 :(得分:2)

In [38]: df.assign(x=df.groupby('id').cumcount()+1) \
    ...:   .set_index(['id','x']) \
    ...:   ['domain'].unstack('x') \
    ...:   .rename_axis(None, 1) \
    ...:   .reset_index()
    ...:
Out[38]:
    id         1             2            3
0  111    vk.com  facebook.com  twitter.com
1  222  avito.ru        vk.com         None

var

答案 1 :(得分:2)

使用pd.crosstab

    pd.crosstab(index=df.id,columns=df.groupby('id').cumcount().add(1),values=df.domain,aggfunc='sum').\
               add_prefix('domain')
Out[570]: 
col_0   domain1       domain2      domain3
id                                        
111      vk.com  facebook.com  twitter.com
222    avito.ru        vk.com         None