2014-12-09 4 views
0

25 열 90 행의 CSV 파일이 있습니다. 첫 번째 열은 예를 들어 01-10-2014로 나타나는 날짜 형식입니다. 나머지 열은 해당 날짜에 해당하는 숫자를 포함합니다. 첫 번째 행은 각 열의 이름입니다. 제 계획은 모든 정보를 취한 코드를 작성하고 임의의 두 열을 서로에 대해 플롯 xy 플롯으로 플롯 할 수있는 유연성을주었습니다. 지금까지 코드를 복사했습니다.CSV 파일에서 파이썬으로 여러 열을 그려야합니다

dtype에서 'weekly'및 'f8'을 제거하면 코드가 제대로 작동합니다. X 축에 날짜를 그리고 Y 축에 첫 번째 열 'daily'를 표시합니다. 아래 그림과 같이 'weekly'와 같이 추가 열을 추가 할 수 있다고 가정했습니다. 그러나, 나는 오류를 얻을 :

Traceback (most recent call last): 
    File "plot_dataset_second.py", line 10, in <module> 
    Date = [DT.datetime.strptime(key,"%d-%m-%Y") for (key, value) in data] 
ValueError: too many values to unpack 

샘플 데이터 :

Date Daily Installs Weekly Installs Mean Install Duration 
01-10-14 153 153 47.71 
02-10-14 630 783 51.9 
03-10-14 50 833 49.94 
04-10-14 973 1805 51.43 

import numpy as np 
import matplotlib.pyplot as plt 
import datetime as DT 

data= np.genfromtxt('dataset1_changed.csv', delimiter=',', 
    dtype={'names': ('Date', 'daily', 'weekly'),'formats': ('S10', 'f8', 'f8')}) 



Date = [DT.datetime.strptime(key,"%d-%m-%Y") for (key, value) in data] 
daily = [value for (key, value) in data] 
weekly = [value for (key, value) in data] 
#y = [value for (key, value) in data] 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.grid() 

fig.autofmt_xdate() 

plt.plot(Date,daily,'b--o--') 
plt.xlabel('Date') 
plt.ylabel('Daily Count') 
plt.title('Daily Count since February') 
plt.show() 
+2

'팬더'사용을 고려 했습니까? 이런 종류의 일에 이상적 일 것입니다. – Ffisegydd

+0

헤더 행을 포함하여 데이터의 몇 행과 열을 게시하십시오. – wwii

+0

@wwii 테이블의 작은 샘플을 추가 했으므로 괜찮습니다. – Marmo

답변

0

내가 위에서 내 자신의 문제에 대한 작동 주위에 일을 찾을 수 있었다. 그것은 우아하지는 않지만 일을합니다. 의견과 도움을 주신 모든 분들께 감사드립니다. 관심있는 사람을위한 코드는 다음과 같습니다.

import csv 
import datetime as dt 
import matplotlib.pyplot as plt 


Date,Daily_Installs,Weekly_Installs = [],[],[] 
csv_reader = csv.reader(open('dataset1_changed.csv', 'rU')) 
for line in csv_reader: 
    Date.append(dt.datetime.strptime(line[0],'%d-%m-%Y')) 
    Daily_Installs.append(int(line[1])) 
    Weekly_Installs.append(int(line[2])) 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(Date,Daily_Installs,'o-') 
fig.autofmt_xdate() 

plt.show() 
관련 문제