2016-04-27 3 views
1

私はpandas.DataFrameに2列あります。最初の列は単純な整数です.2番目の列は長さ50のnumpy.arrayです。これらの2つの列をCSVファイルに書きたいと思いますが、.to_csv()を使用してファイルをExcelで開くと、値のサブセットのみが表示され、アクセス可能です。長さは可変で、私はExcelで開いたときに、同じ文字列の長さ(多かれ少なかれ)の列を取得しているようです。 pandas.to_csv()は、DataFrameの実際のデータではなく、ある種の視覚的な解釈をファイルに書き出しますか?pandas.to_csv(df)を使用するとExcelでnumpy.arrayのサブセットのみが表示されます

これをExcelで使用するには、どうすればCSVに正しく書き込むことができますか?

+1

を私はExcelの一部の表示の問題だと思います。テキストエディタでファイルを確認できますか? – ayhan

+0

あなたは正しいですか?この質問を削除するのが最善でしょうか?それとも言い換えればいい? – Moppentapper

+0

あなたの質問が今後他の誰かに役立つと思うなら、私はあなたがそれを削除する必要はないと思う。もっと役に立つと思うなら、それも言い換えることができます。それはあなた次第です。 :) – ayhan

答えて

1

50の2番目の列の値は、各行のExcelに1つのセル内にあるようです。

私はあなたが最初の列aapplySeriesによってnumpy array列新しい列を作成してconcatことができると思います。最後の書き込みto_csv

import pandas as pd 
import numpy as np 

df = pd.DataFrame({'a': [0,1,5], 'b': [np.arange(50), np.arange(50), np.arange(50)]}) 
print df 
    a             b 
0 0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 
1 1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 
2 5 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...  

print df.b.apply(pd.Series) 
    0 1 2 3 4 5 6 7 8 9 ... 40 41 42 43 44 45 46 47 \ 
0 0 1 2 3 4 5 6 7 8 9 ... 40 41 42 43 44 45 46 47 
1 0 1 2 3 4 5 6 7 8 9 ... 40 41 42 43 44 45 46 47 
2 0 1 2 3 4 5 6 7 8 9 ... 40 41 42 43 44 45 46 47 

    48 49 
0 48 49 
1 48 49 
2 48 49 

df = pd.concat([df['a'], df.b.apply(pd.Series)], axis=1) 
print df 
[3 rows x 50 columns] 
    a 0 1 2 3 4 5 6 7 8 ... 40 41 42 43 44 45 46 47 48 49 
0 0 0 1 2 3 4 5 6 7 8 ... 40 41 42 43 44 45 46 47 48 49 
1 1 0 1 2 3 4 5 6 7 8 ... 40 41 42 43 44 45 46 47 48 49 
2 5 0 1 2 3 4 5 6 7 8 ... 40 41 42 43 44 45 46 47 48 49 
#for testing 
print df.to_csv() 
#write to file 
#print df.to_csv('filename') 

,a,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 
0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 
1,1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 
2,5,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 

EDIT:

あなたはDataFrameto_excel書く必要がある場合:

#write to excel, omit index of DataFrame 
df.to_excel('test.xlsx', index=False) 
+0

ありがとうございます!しかし、言われたように、これは実際にはもっと優れた問題です。これを言い換えるか、単に質問を削除する方が良いですか? – Moppentapper

+0

私はあなたが質問を言い換えることができると思います。 – jezrael

+0

[OK]を、あなたは 'DataFrameを'書き込む必要がありますか? csv(.csv)を作成または作成するか、Excelファイル(.xlxs)を作成することができます。 – jezrael

関連する問題