2014-06-24 18 views
5

"Python for Data Analysis" adlı kitapta belirtilen dosyayı indirdim ve sayfa 278'de belirtilen örnek FEC veritabanından geçiyordum. komutu çalıştırdığımda. Sürümlerim: Python 3.4; Pandalar: 0.14.0. İşletim Sistemi: Yalnızca bu veri kümesi değil, Windows Server 2003 Çalıştığım herhangi bir veri kümesinde benzer bir sorun var. Int (Number) veri türleri, başka herhangi bir şey gibi nesneler olarak içe aktarılıyor ve herhangi bir karşılaştırmada (> 0) onlarla karşılaştığında yukarıdaki hatayı alıyorum. Etrafındaki iş nedir? Int64 veya Float64'ün mevcut olmadığını belirten bir hata veren dtype seçeneğiyle içe aktarmayı denedim. Eminim doğru bir yol var. Veri çerçevesini doğru veri türleri ile yükleme.Python Pandas DataFrame: değiştirilemez tipler: str()> int()

Herhangi bir yardım için teşekkür ederiz.

+0

Zaten bir dize bir int ile karşılaştırmanın işe yaramayacağını zaten belirttiniz, bu dtypes çağrısından 'read_csv' için biraz tuhaf, türünü dönüştürürseniz ne olur? fec.contb_receipt_amt = fec.contb_receipt_amt.astype (np.float64) 'o zaman çalışır – EdChum

+1

Yoldaki eğik çizgiden kaçmadığını fark ettim, bu doğru yükleniyor mu? 'fec = pd.read_csv' yi deneyin (r'c: \ python \ P00000001-ALL.csv ') ' – EdChum

+0

Kodunuzu github depolarına karşı test ettim: https://github.com/pydata/pydata-book/tree/ master/ch09 ve iyi çalıştı bu yüzden senin sorunun ne olduğunu bilmiyorum, ben senin bir veri – EdChum

cevap

3

Bazı hatalar için bu hatayı aldım. Önce bir tür değişikliği kullanarak çözdüm.

Dene:

fec[[contb_receipt_amt]] = fec[[contb_receipt_amt]].astype(str) 

Sonra tekrar sayımı yapmayı deneyin.

İlgili konular