将同一个表中的两个索引(列名?)合并为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