web-dev-qa-db-ja.com

pandasタイムスタンプシリーズから文字列へ?

私はpython(Rから来ている)に不慣れです。私はpandasデータフレームでタイムスタンプシリーズを変換する方法を理解しようとしています(私の場合)これは_df['timestamp']_)と呼ばれ、Rでは文字列ベクトルと呼ばれますが、これは可能ですか?これはどのように行われますか?

私はdf['timestamp'].apply('str')を試しましたが、これは単に列全体を_df['timestamp']_を1つの長い文字列に入れているようです。各要素を文字列に変換し、構造を保持して、それがまだベクトル(またはこれが配列と呼ばれることもある)になるようにしています。

12
StatsStudent

データフレームを考慮してくださいdf

df = pd.DataFrame(dict(timestamp=pd.to_datetime(['2000-01-01'])))

df

   timestamp
0 2000-01-01

日時アクセサーdtを使用して、 strftime メソッドにアクセスします。 strftimeにフォーマット文字列を渡すと、フォーマットされた文字列が返されます。 dtアクセサと共に使用すると、一連の文字列が得られます。

df.timestamp.dt.strftime('%Y-%m-%d')

0    2000-01-01
Name: timestamp, dtype: object

訪問 strftime.org は、フォーマット文字列の便利なセットです。

4
piRSquared

astypeを使用

>>> import pandas as pd
>>> df = pd.to_datetime(pd.Series(['Jul 31, 2009', '2010-01-10', None])) 
>>> df.astype(str)
0    2009-07-31
1    2010-01-10
2           NaT
dtype: object

文字列の配列を返します

2
VinceP

VincePの答えに続いて、日時シリーズをインプレースで変換するには、次のようにします。

df['Column_name']=df['Column_name'].astype(str)

1
MarMat