pandas.read_csv
Sütunları filtrelediğimde usecols
ve birden çok dizin kullandığımda doğru şekilde gelmeyen bir csv dosyam var.
import pandas as pd
csv = r"""dummy,date,loc,x
bar,20090101,a,1
bar,20090102,a,3
bar,20090103,a,5
bar,20090101,b,1
bar,20090102,b,3
bar,20090103,b,5"""
f = open('foo.csv', 'w')
f.write(csv)
f.close()
df1 = pd.read_csv('foo.csv',
header=0,
names=["dummy", "date", "loc", "x"],
index_col=["date", "loc"],
usecols=["dummy", "date", "loc", "x"],
parse_dates=["date"])
print df1
# Ignore the dummy columns
df2 = pd.read_csv('foo.csv',
index_col=["date", "loc"],
usecols=["date", "loc", "x"], # <----------- Changed
parse_dates=["date"],
header=0,
names=["dummy", "date", "loc", "x"])
print df2
Eksik sahte sütun dışında df1 ve df2'nin aynı olmasını bekliyorum, ancak sütunlar yanlış etiketlenmiş olarak geliyor. Ayrıca tarih, tarih olarak ayrıştırılıyor.
In [118]: %run test.py
dummy x
date loc
2009-01-01 a bar 1
2009-01-02 a bar 3
2009-01-03 a bar 5
2009-01-01 b bar 1
2009-01-02 b bar 3
2009-01-03 b bar 5
date
date loc
a 1 20090101
3 20090102
5 20090103
b 1 20090101
3 20090102
5 20090103
İsimler yerine sütun numaraları kullanmak da bana aynı sorunu veriyor. Read_csv adımından sonra kukla sütunu bırakarak sorunu çözebilirim, ancak neyin yanlış gittiğini anlamaya çalışıyorum. Pandalar 0.10.1 kullanıyorum.
düzenleme: hatalı başlık kullanımı düzeltildi.
header
venames
anahtar kelimelerini kullanımınız doğru değil (bu nedenle örneğinizde ilk satır eksik.header
Üstbilginin olduğu satır olarak bir int (varsayılan 0) bekliyor. Çünkü 1 olarak yorumlanan 'True' veriyorsunuz, ikinci satır (ilk veri satırı) başlık olarak kullanılır ve eksiktir.Ancak,names
bağımsız değişkenle üzerine yazdığınız için sütun adları doğrudur.Ancak ikisini de bırakabilirsiniz ve ilk satır varsayılan olarak sütun adları için kullanılır. Ancak, ilk sorunuzu çözmüyor.