2014-11-06 11 views
35

Ben pandalar ile csv oluşturmaya çalışıyorum ama csv ihracat zaman pandalar to_csv ilk ekstra sütun kaldır, nasıl yapılır?

d = {'one' : pd.Series([1., 2., 3.]),'two' : pd.Series([1., 2., 3., 4.])} 
df0_fa = pd.DataFrame(d) 
df_csv = df0_fa.to_csv('revenue/data/test.csv',mode = 'w') 

yani benim sonuç olurdu bana bir ekstra satır verdi:

,one,two 
0,1.0,1.0 
1,2.0,2.0 
2,3.0,3.0 
3,,4.0 

Ama ne istediğim

olduğunu
one,two 
1.0,1.0 
2.0,2.0 
3.0,3.0 
,4.0 

cevap

58

Ne görüyorsanız, dizin sütunu. Sadece index=False ayarlayın:

df_csv = df0_fa.to_csv('revenue/data/test.csv',mode = 'w', index=False) 
+1

Bu belgeyi nasıl kaçırdığımı bilmiyorum, ama harika yakalama! Bu beni sonsuza dek sinirlendiriyordu, indeksi bir sütun olarak nereye eklediğimi anlamaya çalışıyordum. – Blairg23

+1

Kafamı buna da sahip olduğumdan daha fazla vurdum. –

+4

Ve herhangi biri de sütun adlarını kaldırmaya çalışıyorsa, 'header = False' iletebilirsiniz. – twiz

4

bir endeks olarak ilk sütunu kullanarak pandaları önlemek için index_col unset olabilir indeksleme olmadan csv dosyasını okumak için. Ve csv'yi diske geri kaydederken, to_csv'da set index = false değerini unutmayın. Bu, ek bir dizin sütunu oluşturmaz. csv geçerli bir dizin sütunu şunları yapabilirsiniz olsa bile, bu durumda

import pandas as pd 
file_path = 'example_file.csv' 
data_frame = pd.read_csv(file_path, index_col = False) 
column_name = 'column' 
data_frame = data_frame.drop(column_name, axis = 1) 
data_frame.to_csv(file_path, index = False) 

şu şekildedir: Silmek gerekiyorsa Else,/drop kullanın veri çerçevesinden belirli bir sütunu kaldırmak, bu benim için çalıştı read_csv'da index_col = False öğesini atlayın.

İlgili konular