web-dev-qa-db-ja.com

python pandasのシリーズの文字列への日時

この単純なことをする必要があります。

dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str

しかし、エラーが発生します。日時から文字列に変換する方法

前もって感謝します

35
Diego

日時用のstrアクセサーはありません。また、dates.astype(str)も実行できません。applyを呼び出してdatetime.strftimeを使用できます。

In [73]:

dates = pd.to_datetime(pd.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.apply(lambda x: x.strftime('%Y-%m-%d'))
Out[73]:
0    2001-01-01
1    2001-03-31
dtype: object

日付文字列の形式は、好きなものを使用して変更できます。 https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

update

バージョン0.17.0から dt.strftime を使用してこれを行うことができます

dates.dt.strftime('%Y-%m-%d')

今すぐ動作します

58
EdChum

バージョン17.0では、dtアクセサーでフォーマットできます。

dates.dt.strftime('%Y-%m-%d')

参照

17
ksindi

pandasデータフレームのDateTimeインデックスに適用できるpandas関数があります。

date = dataframe.index #date is the datetime index
date = dates.strftime('%Y-%m-%d') #this will return you a numpy array, element is string.
dstr = date.tolist() #this will make you numpy array into a list

リスト内の要素:

u'1910-11-02'

「u」を置き換える必要がある場合があります。

前の関数に追加すべき引数がいくつかあるかもしれません。

3
Qing Xia