2014-03-02 4 views
1

약간의 문제가 있습니다. 누군가 저를 도울 수 있기를 바랍니다. 나는 파이썬에서 최고가 아니다.CSV 파일에서 읽고 플롯을 만드십시오.

나는 조작해야하는 "CSV"파일이 있습니다. 나는 당신이 도울 수 있기를 희망하는 3 가지 질문을 가지고있다.

1 : 첫 번째 내가, 아직 내가 처음 두 줄을 인쇄 생각하는 처음 두 줄

를 인쇄합니다. 이 같은

import csv 
from pprint import pprint 

data = open('iphonevsandroid.csv') 

pprint (data.readlines(2)) 
f.close() 

나는 점점 데이터 :

['week,iphone,android\n', 
'2004-01-04 - 2004-01-10,0,0\n', 
'2004-01-11 - 2004-01-17,0,0\n', 
'2004-01-18 - 2004-01-24,0,0\n', 
'2004-01-25 - 2004-01-31,0,0\n', 
'2004-02-01 - 2004-02-07,0,0\n', 
'2004-02-08 - 2004-02-14,0,0\n', 
'2004-02-15 - 2004-02-21,0,0\n', 
'2004-02-22 - 2004-02-28,0,0\n', 
'2004-02-29 - 2004-03-06,0,0\n', 
'2004-03-07 - 2004-03-13,0,0\n', 
'2004-03-14 - 2004-03-20,0,0\n', 

2 : (: 사용 datetime.strptime 힌트) 단일 Date 객체로 변환 할 수있는 첫 번째 필드를 구문 분석합니다. 두 날짜 중 하나를 선택할 수 있습니다.

import csv 
import datatime 

data = open('iphonevsandroid.csv') 

reader1 = csv.reader1(data) 

for row in reader1: 
    print row[0] 

이것은 우리가 필요로하는 첫 번째 행을 출력합니다,하지만 난 날짜의 1 어떻게받을 수 있나요? 나는 나중에 그것을 계획해야한다.

+0

정직하게 말하면 2 점에서 원하는 것을 얻지 못했습니까 ?? – Nabin

답변

0

string.split 메서드를 사용합니다. 귀하의 경우에는

, 당신은으로 분할 할 수 있습니다 '-'

을 그래서 경우 : 첫 번째 볼

first_date_row = row[1] 
    Output: '2004-01-04 - 2004-01-10,0,0\n' 

:로

row = ['week,iphone,android\n', 
'2004-01-04 - 2004-01-10,0,0\n', 
'2004-01-11 - 2004-01-17,0,0\n', 
'2004-01-18 - 2004-01-24,0,0\n', 
'2004-01-25 - 2004-01-31,0,0\n', 
'2004-02-01 - 2004-02-07,0,0\n', 
'2004-02-08 - 2004-02-14,0,0\n', 
'2004-02-15 - 2004-02-21,0,0\n', 
'2004-02-22 - 2004-02-28,0,0\n', 
'2004-02-29 - 2004-03-06,0,0\n', 
'2004-03-07 - 2004-03-13,0,0\n', 
'2004-03-14 - 2004-03-20,0,0\n'] 

우리는 처음 값을 취할 수 날짜는 두 번째 것과 '-'로 구분됩니다.

그래서 우리가 두 번째 데이트를 어떻게

first_date = first_date_row.split(' - ')[0] 
Output: '2004-01-04' 

? 첫 번째 날짜와 비슷한 절차를 수행 할 수 있지만 두 번째 날짜 이후 첫 번째 쉼표를 구분 기호로 사용하십시오. 따라서

:

second_date = first_date_row.split(' - ')[1].split(',')[0] 
Output: '2004-01-10' 

주의 사항은,이 날짜는 파이썬 단지 텍스트, 당신은 날짜 객체로 변환해야합니다. 이 경우에 사용할 수 있습니다.

first_date_formated = datetime.strptime(first_date, '%Y-%m-%d') 
second_date_formated = datetime.strptime(second_date, '%Y-%m-%d') 
+0

thx alot man ... 많이 도와 줬어. – Raaydk

+0

문제 없습니다 ... 내 대답을 올바르게 확인 하시겠습니까? 나는 약간의 명성을 얻는 것을 꺼릴 것이다. :) (주 : 대답으로 표시하려면, upvote 화살표 아래의 simbol을 체크한다) –

관련 문제