read_csv
csv を DataFrame に読み込むために使用する必要があります。
In [1]: df = pd.read_csv(file_name, sep='\s+', header=None, names=['time', 'ip'])
In [2]: df
Out[2]:
time ip
0 06:03 65.55.215.62
1 06:04 157.56.92.152
2 06:04 66.249.74.175
3 06:05 173.199.116.171
Pandas には (まだ) 組み込みの時間オブジェクトがなく、Python でこれを行うのは簡単ではありません...時間オブジェクトの時間列を作成できます。
In [3]: df['time'] = df['time'].apply(lambda x: datetime.time(*map(int, x.split(':'))))
In [4]: df
Out[4]:
time ip
0 06:03:00 65.55.215.62
1 06:04:00 157.56.92.152
2 06:04:00 66.249.74.175
3 06:05:00 173.199.116.171
特に、 datetime.time オブジェクトに対して算術演算を実行できないためです。いずれにせよ、ここにも年月日がないと厄介な状況になると思いますが、一つには、真夜中の対処法は?
では、日時があると仮定して、もう一度始めましょう...
In [5]: df = pd.read_csv(file_name, sep='\s+', header=None, names=['time', 'ip'])
In [6]: df['time'] = pd.to_datetime(df['time']) # let's use todays
In [7]: df
Out[7]:
time ip
0 2013-06-12 06:03:00 65.55.215.62
1 2013-06-12 06:04:00 157.56.92.152
2 2013-06-12 06:04:00 66.249.74.175
3 2013-06-12 06:05:00 173.199.116.171
次に、次を使用して違いを取得できますshift
。
In [8]: df['time'].shift()
Out[8]:
0 NaT
1 2013-06-12 06:03:00
2 2013-06-12 06:04:00
3 2013-06-12 06:04:00
Name: time, dtype: datetime64[ns]
In [9]: d['time'] - df['time'].shift()
Out[9]:
0 NaT
1 00:01:00
2 00:00:00
3 00:01:00
Name: time, dtype: timedelta64[ns]
はるかに簡単です。:)