我在学Pandas。
我创建了这个测试框架:
dfdict = {'product':['ruler', 'pencil', 'case', 'rubber'],'sold':[4,23,0,14],'Quarter':['Q1/22','Q2/23','Q3/22','Q1/23']}
dftest=pd.DataFrame(dfdict)
dftemp=dftest.pivot_table(index=['product'],columns=['Quarter'],values=['sold'],aggfunc=sum,fill_value=0)
print(f"{dftemp}")
字符串
其产生:
sold
Quarter Q1/22 Q1/23 Q2/23 Q3/22
product
case 0 0 0 0
pencil 0 0 23 0
rubber 0 14 0 0
ruler 4 0 0 0
型
有两点需要帮助:
1.如何只删除sold
列名?我不希望它出现在那里,因为当我将其写入csv时,每个Quarter
列的上方都有一个“sold”名称。
1.我如何按日期顺序排列Quarter
列,现在它们是文本。最好的方法是什么?是以某种方式将它们转换为日期,然后按相同的样式排列它们并写出它吗?
2条答案
按热度按时间c7rzv4ha1#
您可以将列
Quarter
转换为四分之一,以便pivot_table
正确排序输出,删除sold
列中的MultiIndex
,更改一个元素列表,如[sold]
到sold
:字符串
最后,如果需要原始格式或其他格式,请使用
rename
和strftime
:型
xtupzzrd2#
不要使用列表作为
pivot_table
的参数,然后使用自定义键的sort_index
(例如使用str.replace
或PeriodIndex
):字符串
或者:
型
输出量:
型