[pandas] DatetimeIndexを日付文字列のシリーズに変換する
2022-02-28 03:53:36
エンカウンター
DatetimeIndexを日付文字列でSeries型に変換する必要がある。
例えば、以下のようなDatetimeIndexがあるとします。
print dti
DatetimeIndex(['2015-09-21 10:30:00', '2015-09-21 11:30:00',
'2015-09-21 14:00:00', '2015-09-21 15:00:00',
'2015-09-22 10:30:00', '2015-09-22 11:30:00',
'2015-09-22 14:00:00', '2015-09-22 15:00:00'],
dtype='datetime64[ns]', freq=None, tz=None)
これで、このデータ内では2015-09-21, 2015-09-22のような日付情報だけが必要となり、時間情報は省略できるようになりました。
解決策
Indexの型が通常のpandas.core.index.Indexであれば、問題はうまく解決します。
df.index.str.split(' ').str[0]
しかし、DatetimeIndexでstrオブジェクトを使おうとすると、例外が発生します。
AttributeError: Can only use .str accessor with string values (i.e. inferred_typ
e is 'string', 'unicode' or 'mixed')
APIを見たところ、以下のコードのように、まずDatetimeIndexをdatetime型の配列に変換し、その配列を操作してnumpy.ndarrayを取得し、最後にその配列をSeriesに変換すればいいことがわかりました。
pydate_array = dti.to_pydatetime()
date_only_array = np.vectorize(lambda s: s.strftime('%Y-%m-%d'))(pydate_array )
date_only_series = pd.Series(date_only_array)
最終的には、日付だけを含むSeriesになります。
print date_only_series
0 2015-09-21
1 2015-09-21
2 2015-09-21
3 2015-09-21
4 2015-09-22
5 2015-09-22
6 2015-09-22
7 2015-09-22
dtype: object
関連
-
PythonがNameError: name '_name_' is not definedのようなエラーを発生させる。
-
Solve ImportError: cannot import name 'np_utils' from 'tensorflow.keras.utils'
-
np.random.multivariate_normalメソッド解析
-
Python3 はエンコーディングの問題を解決します: UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position
-
ガールフレンドが深夜12時に彼女をベッドに急がせるよう頼んだが、私はそれをしないパイソンを持っています。
-
python 1e-5とはどういう意味ですか?
-
このコードは Python で実行され、エラーは発生しませんが、出力はなく、終了コード 0 となります。
-
エラー時に演算子が期待される場所でベアワードが見つかった
-
Python Selenium ライブラリを使用する
-
Python ウェブサイト実行 Django経由のLuaスクリプト(データ解析用)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python「lxmlを使ったxpathのパース - コナちゃんをクローリングする
-
pythonBug:AttributeError: タイプオブジェクト 'datetime.datetime' は属性 'datetime' を持たない。
-
from scipy.interpolate import spline errorImportError: cannot import name 'spline'.
-
ImportError: 名前のインポートができない imsave エラー
-
PythonのエラーNo module named 'pkg_resources' を解決する。
-
Pycharmの未解決の参照問題
-
AttributeError: module 'pandas' has no attribute 'rolling_mean' Error resolution
-
Pythonでインターフェースを書くことを教える
-
Anaconda ディープラーニング (便利すぎてパーティー) アンインストール tensorflow (cpu 版) インポート tensorflow-gpu (gpu 版) ----便利すぎてパーティー
-
Django で model_to_dict を使用する