2017-05-11 14 views
1

私は以下を持っていますSeriesdatetimeの日を抽出したいと思います。datetimeから日と月を抽出する適用外のシリーズ

dates.apply(lambda x: x.day) 

しかし、私は大規模なpandas dataframeため、apply方法は超高速ではないことに気づい:

import pandas as pd 

dates = pd.Series(pd.bdate_range('2017-05-01', '2017-05-05')) 

はこれまでのところ、私が考えることができる唯一の解決策は、 applyメソッドを使用しています。前のコードでは、 timedeltaを日で変換し、 .apply(lambda x: x.days)ではなく .astype('timedelta64[D]')を使用して、コードの速度を大幅に向上させました。

誰もが、私は私のdatetimedayを抽出するために、私のdatetime Seriesためapply方法を避けるために何ができるかのアイデアを持っていた場合、私は思っていました。また、可能であれば、あまり具体的ではないので、私はmonthを抽出するために同じことをしたいと思います。

+0

使用 'dates.day'または' dates.dt.day' – EdChum

+0

'dates.day'が動作しませんが、' dates.dt.day'はありません、ありがとう –

+0

私はシリーズのctorを見たことがなく、日付なしの日付と時刻を取得しました – EdChum

答えて

4

あなたはdt accessorを使用することができます。

In [11]: dates.dt.day 
Out[11]: 
0 1 
1 2 
2 3 
3 4 
4 5 
dtype: int64 
関連する問題