为什么concat重新格式化我的标题?

时间:2015-06-09 19:01:28

标签: csv pandas append concat

我根据需要对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')

1 个答案:

答案 0 :(得分:1)

在第

df = pd.DataFrame(byqualityissue)

您没有为该列命名,因此它采用默认值0。 然后当你致电unstack时,

formatted = df.unstack(level=-1)

结果在第一级中具有0的分层列。要解决此问题,您可以使用

替换上一行
formatted = df.unstack(level=-1)[0]