我根据需要对CSV
文件进行了排序,并添加了一列来正确排序数据。但是,在使用concat
时(我认为这是问题所在,无论如何)输出CSV
文件已更改为(0L,'HeadingTitle')。我只是希望它是HeadingTitle。
import numpy as np
import pandas as pd
import pandas.util.testing as tm; tm.N = 3
data = pd.DataFrame.from_csv('MYDATA.csv')
byqualityissue = data.groupby(["CompanyName","QualityIssue"]).size()
df = pd.DataFrame(byqualityissue)
formatted = df.unstack(level=-1)
formatted[np.isnan(formatted)] = 0
includingtotals = pd.concat([formatted,pd.DataFrame(formatted.sum(axis=1),columns=['Total'])],axis=1)
sorted = includingtotals.sort_index(by=['Total'], ascending=[False])
#del sorted['Total']
sorted.to_csv('byqualityissue.csv')
输出标题为:
CompanyName, (0L, 'Equipment'), (0L, 'User'), (0L, 'Neither'), Total
如何修改此标题以便我只有标题标题?
编辑: 如果我打印的sorted.columns输出是
Index([(0, u'Equipment), (0, u'User'), (0, u'Neither'), u'Total'], dtype='object')
答案 0 :(得分:1)
在第
行df = pd.DataFrame(byqualityissue)
您没有为该列命名,因此它采用默认值0
。
然后当你致电unstack
时,
formatted = df.unstack(level=-1)
结果在第一级中具有0
的分层列。要解决此问题,您可以使用
formatted = df.unstack(level=-1)[0]