将同一个表中的两个索引(列名?)合并为1?

我正在利用数据透视来卷起数据。该数据的形式为:将同一个表中的两个索引(列名?)合并为1?

year month name 

2012 1 annie

2012 1 annie

2012 2 david

2012 2 david

2012 2 david

我用下面的代码来创建一个支点:

date_pivot = pd.pivot_table(date_pivot, index=['name'], columns=['year','month'], aggfunc=len) 

它汇集的数据到表单:

year 2012 

month 1 2

name

annie 2 0

david 0 3

含义,我认为列名被分成两个独立的部分。我想这些组合成形式的单个列名:

2012.1 2012.2 

,这样我可以以后再定义的列名的某些范围。我怎样才能做到这一点?

回答:

我认为你可以用你正在查找的值创建另一列,然后根据该列进行透视。

date_pivot['year_month'] = date_pivot['year'].map(str) + "." + date_pivot['month'] 

date_pivot = pd.pivot_table(date_pivot, index=['name'], columns=['year_month'], aggfunc=len)

编辑

,使您的列进行排序正确创建新列时,您可能会想垫您个月zfill(2)。否则2012.10将在月份之前排序2012.2

回答:

重新创建列和assgin回

date_pivot.columns=list(map('{0[0]}.{0[1]}'.format, date_pivot.columns.values.tolist())) 

date_pivot

Out[266]:

2012.1 2012.2

name

annie 2.0 NaN

david NaN 3.0

以上是 将同一个表中的两个索引(列名?)合并为1? 的全部内容, 来源链接: utcz.com/qa/257505.html

回到顶部