2017-05-04 180 views
0

写pivot_table为txt文件,我已经得到了pivot_table如下:如何蟒蛇

source table

有在表空间, 我希望写入TXT是什么:

desired result

如何得到它?

chaoshidishi=pd.pivot_table(clsc,index="故障发生地市",values="工单号",aggfunc=len) 
chaoshidishi=chaoshidishi.to_frame() 
f=open('E:\gaotie\dishi.txt','w') 
for row in chaoshidishi: 
    f.write(row[0]+row[1]) 
f.close() 
+2

为什么不使用[DataFrame.to_csv](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html#pandas-dataframe-to-csv)功能 – shanmuga

回答

0

上@ shanmuga的评论之后,你应该能够使用to_csv()不首先使用to_frame()

首先,这里似乎反映您设定一些样本数据:

import pandas as pd 

group = ['a','a','b','c','c'] 
value = [1,2,3,4,5] 

df = pd.DataFrame({'group':group,'value':value}) 
print(df) 

    group value 
0  a  1 
1  a  2 
2  b  3 
3  c  4 
4  c  5 

现在申请pivot_table()

df.pivot_table(columns='group', values='value', aggfunc=len) 

group 
a 2 
b 1 
c 2 
Name: value, dtype: int64 

您可以直接保存从这个输出到文件。如果你不希望保留索引和列名,负载使用header=None

(df.pivot_table(columns='group', values='value', aggfunc=len) 
    .to_csv('foo.txt')) 
newdf = pd.read_csv('foo.txt', header=None) 

print(newdf) 

    0 1 
0 a 2 
1 b 1 
2 c 2 

要保留列和索引名,使用上保存header说法,和index_col参数上载:

(df.pivot_table(columns='group', values='value', aggfunc=len) 
    .to_csv('foo.txt', header='group')) 
newdf = pd.read_csv('foo.txt', index_col='group') 

print(newdf) 

     value 
group  
a   2 
b   1 
c   2 
+0

要保存列和索引名称,newdf中仍然有NaN? 我想输入像“一个,2个苹果\ n b,1个啤酒\ n”到txt – HOLYChen