-2

この22:15、19:43などの分と秒の時間データで構成されるpandasデータフレーム列があります。これを変換して計算できるようにする必要があります。データが Unicode であるという事実が、この作業をより困難にしています。

4

1 に答える 1

3

datetime と timedelta を使用して、解析と計算を行うことができます。

In [84]: import pandas as pd

In [85]: from datetime import datetime, timedelta

In [86]: def convert(s):
             t = datetime.strptime(s, "%H:%M")
             return timedelta(hours=t.hour, minutes=t.minute)

In [87]: df = pd.DataFrame({'A':[u'22:15', u'19:43']})

In [88]: df
Out[88]:
       A
0  22:15
1  19:43

In [89]: dfc = df.applymap(convert)

In [90]: dfc
Out[90]:
          A
0  22:15:00
1  19:43:00

dfc は timedelta オブジェクトを保持し、これらを使用して計算を行うことができます。たとえば、24 時間を追加します。

In [91]: dfc + timedelta(hours=24)
Out[91]:
                 A
0  1 day, 22:15:00
1  1 day, 19:43:00
于 2013-04-30T08:36:02.630 に答える