2014-03-02 153 views
1

我有一個小問題我希望有人能幫助我。我不是最好的蟒蛇。我有一個「CSV」文件,我不得不操縱。我有3個問題,我希望你能提供幫助。從CSV文件讀取並繪圖

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)。您可以選擇兩個日期中的任何一個。

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' 

請注意,這些日期是Python的只是文字,你需要把它們轉化爲日期對象。你可以在這種情況下使用:

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

thx很多人...幫助了我很多。 – Raaydk

+0

沒問題...你介意檢查我的答案是否正確?我不介意獲得一些聲譽:) (注意:要將它標記爲答案,請按照upvote箭頭下方的檢查符號) –