2013-10-17 26 views
6

sorgusunda baş vurmaktadır. exaple:Veri çerçevesinin csv'ye kaydedilmesi ve yüklenmesi, Adsız sütunlarda

x=[('a','a','c') for i in range(5)] 
df = DataFrame(x,columns=['col1','col2','col3']) 
df.to_csv('test.csv') 
df1 = read_csv('test.csv') 

    Unnamed: 0 col1 col2 col3 
0   0 a a c 
1   1 a a c 
2   2 a a c 
3   3 a a c 
4   4 a a c 

nedeni dataframe kaydederken, endeks sütun başlığında, isimsiz da yazılı olduğu gibi görünüyor. Daha sonra csv'yi tekrar yüklediğinizde, dizin sütunu ile adlandırılmamış sütun olarak yüklenir. Bu bir hata mı? İndeksle bir csv yazmayı veya okunamayan sütunları okumayı nasıl bırakabilirim?

cevap

7

Satır etiketlerini index ve index_labelparameters of to_csv aracılığıyla kaldırabilirsiniz.

+0

Bu aradığım şey, afterwords ile uğraşmak yerine problem yaratmaktan kaçınıyor. – idoda

0

cols parametresini kullanarak yazmak istediğiniz sütunları açıkça belirtebilirsiniz.

+0

Pek iyi, çok sayıda sütun olabileceğinden, bu iyi değil .. ne yapabilirim df [df.columns] .to_csv(). Bu büyük bir sorun olmazdı .. – idoda

4

Bunlar, konumlandırma nedeniyle csv biçiminde belirsizlikler olduğu için simetrik değildir. Çok 'foo' bir sütun ya da bir endeksidir, okuma-back

In [1]: x=[('a','a','c') for i in range(5)] 

In [2]: df = DataFrame(x,columns=['col1','col2','col3']) 

In [3]: df.to_csv('test.csv') 

In [4]: !cat test.csv 
,col1,col2,col3 
0,a,a,c 
1,a,a,c 
2,a,a,c 
3,a,a,c 
4,a,a,c 

In [5]: pd.read_csv('test.csv',index_col=0) 
Out[5]: 
    col1 col2 col3 
0 a a c 
1 a a c 
2 a a c 
3 a a c 
4 a a c 

Bu, yukarıda çok benzer bir index_col belirtmek gerekir?

In [6]: df.index.name = 'foo' 

In [7]: df.to_csv('test.csv') 

In [8]: !cat test.csv 
foo,col1,col2,col3 
0,a,a,c 
1,a,a,c 
2,a,a,c 
3,a,a,c 
4,a,a,c 
+0

Teşekkürler, çözümün basit olacağını düşündüm :) – idoda

+0

, sadece '' index_col = 0'' – Jeff

0

O nasıl kullanılması endeksi df.to_csv('test.csv', index_label=False) Ama benim için, ben dönüş hatadır Kaggle teslim denedim zaman s "HATA: 1 Kayıt 3 sütun vardı ama 2 beklendiği", bu yüzden this code kullanmak çözdü.

+0

belirtin. Kalitenizi arttırmak için cevabınıza açıklayıcı bir metin eklemeyi düşünmelisiniz. – user2314737

İlgili konular