2017-06-27 12 views
2

私はcsvファイルの9:20:00 AMと4:09:21 PMに2つの日付があり、Pythonでそれらを読み取る必要があります。この2つの日の間の時間はどのようにして調べるのですか?PythonでExcelの日付を計算する関数

+0

CSVのスニペットを指定します。時間は2行か1行にカンマなどで... – kabanus

答えて

0

CSVをPythonで読むにはさまざまな方法があります。私はあなたが公式のpython csvライブラリとpandasとその使いやすいread_csv機能を見てみることをお勧めします。

時間差を見つけるために、あなたは文字列を解析し、このような違いを見つける必要がありますとおり:

from dateutil.parser import parse 
a = "9:20:00 AM" 
b = "4:09:21 PM" 
a_obj = parse(a) 
b_obj = parse(b) 
time_diff = b_obj - a_obj 
print time_diff.total_seconds() 
0

あなたはCSVファイルを読み書きするためのpythonのcsvパッケージを使用することができます。..

パッケージを使用して 例えば

..

import csv 
with open('eggs.csv', 'rb') as csvfile: 
spamreader = csv.reader(csvfile) 
for row in spamreader: 
    #Your Logic 

二つの日付をお読みください。これは文字列で、Pythonの日付オブジェクトに変換し、2つの日付の間の時間を見つけることができます。

a = first_date 
b = second_date 
c = b - a 
divmod(c.days * 86400 + c.seconds, 60) 
0

datetimeモジュールに興味があります。 インタプリタでこれを試してください。

>>> from datetime import datetime 
>>> a = datetime.strptime('9:20:00 AM','%I:%M:%S %p') 
>>> a 
datetime.datetime(1900, 1, 1, 9, 20) 
>>> b = datetime.strptime('4:09:21 PM','%I:%M:%S %p') 
>>> b 
datetime.datetime(1900, 1, 1, 16, 9, 21) 
>>> c= b-a 
>>> c 
datetime.timedelta(0, 24561) 

だからあなた'9時20分00秒AM'はDateTimeオブジェクトに変換しました。同様にもう一回。

注:'%I:%のM:%S%pと'これは、あなたがdatetimeオブジェクトに文字列を変換するためにstrptimeを伝えている形式です。日時オブジェクトの操作を実行すると、timedeltaオブジェクトが取得されます。

datetime.timedelta(0, 24561) 

適切なdays,secondsを取得できます。あなたはそのためのhours,minutesを取得することはできませんしかし、あなたは、簡単な数学

ここ

あなたのためのコードがあるを実行する必要が

import datetime 


def days_hours_minutes(td): 
    return td.days, td.seconds//3600, (td.seconds//60)%60 

a = datetime.datetime.strptime('9:20:00 AM','%I:%M:%S %p') 
b = datetime.datetime.strptime('4:09:21 PM','%I:%M:%S %p') 
c = datetime.timedelta(0, 24561) 

days,hours,minutes = days_hours_minutes(c) 
print("{0}:Days,{1}:Hours,{2}:Minutes".format(days,hours,minutes)) 

出力:私は印刷に機能days_hours_minutes()を定義した

0:Days,6:Hours,49:Minutes 

日、時、分。