2016-03-28 13 views
0

Lütfen yardım edin!.csv sütunundan tarih almak için datetime.strptime öğesini kullanma

Bu kodla ilgili bir çok sorun yaşıyorum. Buradaki görev, bazı bilgileri (Yüksek, Düşük ve Orta) kendileriyle ilişkili tarihlere göre çizmek.

Veriler, .csv dosyasında, Başlık: Tarih, Yüksek, Orta, Düşük olarak bulunur. Tarihler gg/aa/yyyy biçimindedir.

Şimdiye kadar, ben sütunları belirtmek için genfromtxt kullandım ve veri türü vb .. Ancak, Python sütunları okuyor şekliyle ilgili bir sorun olduğunu düşünüyorum - Ben "Çok fazla indeksleri" ya almaya devam:

import pylab as py 
import numpy as np 
import datetime as dt 
import csv 

data = np.genfromtxt('F:\\Python\\All.csv', usecols=(0,1,2,3), names=True, skip_header=0, dtype=[('Date', 'S10')]),('High','f8'),('Medium','f8'),('Low','f8')], delimiter = ',') 

print data 

x = data[:,Date] 
y1 = data[:,1] 
y2 = data[:,2] 
y3 = data[:,3] 

Date2 = [] 

for x in data: 
date_format = dt.datetime.strptime((str(x)), '%d/%m/%Y') 
Date2.append.date_format 
: Burada
Traceback (most recent call last): 
File "F:\Python\A1.py", line 14, in <module> 
x = data[:,'Date'] 
ValueError: invalid literal for long() with base 10: 'Date' 

tam kodudur: [, 'Tarih] ben x = verilerini kullanmak durumunda
Traceback (most recent call last): 
File "F:\Python\A1.py", line 14, in <module> 
x = data[:,0] 
IndexError: too many indices 

YA ben bu olsun

Teşekkürler!

+0

CSV'nin ilk birkaç satırından bir pasaj yazabilir misiniz? 'Verileri' yazdırdığınızda ne görürsünüz? Beklediğiniz şeyle uyumlu mu? Her ne zaman bu sorunları varsa, genellikle bir python ayrıştırma dosyası beklediğimden farklı bir şekilde bir sorundur. –

cevap

0

data = np.genfromtxt (...), üç öğeye sahip olan 1-D dizilim dizisi oluşturur. Örneğin, veriler böyle görünecektir.

array([(b'02/03/2015', 3.0, 2.0, 1.0), (b'03/04/2015', 4.0, 3.0, 1.0), 
     (b'04/05/2015', 10.0, 9.0, 7.0), (b'05/06/2015', 12.0, 4.0, 3.0), 
     (b'06/07/2015', 2.0, 1.0, 0.0)], 
dtype=[('Date', 'S10'), ('High', '<f8'), ('Medium', '<f8'), ('Low', '<f8')]) 

Yapmaya çalıştığınız şey, verileri 2 boyutlu dizi olarak işlemekti, ancak aslında 1 boyutlu dizidir. Böylece böyle bir şey yapabilirsin

İlgili konular