Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas:DateTimeIndexからDataFrameを作成し、結果の列名を上書きする方法

DateTimeIndexからDataFrameを作成するには、to_frame()メソッドを使用します。このメソッドは、インデックスの日時データをそのままDataFrameの列へ変換できる便利な機能です。

さらに、nameパラメータを指定することで、生成される列の名前を任意の文字列に上書きできます。本記事では、その具体的な使い方をサンプルコード付きで解説します。

必要なライブラリのインポート

まず、pandasをインポートします。

import pandas as pd

DatetimeIndexの作成

次に、periods(要素数)を5、freq(頻度)を「40S」=40秒間隔としてDatetimeIndexを作成します。タイムゾーンはAustralia/Adelaideを指定しています。

datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='40S')

DateTimeIndexの表示

作成したDateTimeIndexの中身を確認してみましょう。

print("DateTimeIndex...\n", datetimeindex)

DateTimeIndexからDataFrameへの変換

to_frame()メソッドのindex引数にFalseを渡すと、返されるDataFrameには元のインデックスが設定されず、0から始まる連番が割り当てられます。

また、nameパラメータに任意の文字列を指定することで、結果の列名を上書きできます。ここでは「DateTimeData」という列名を指定します。

print("\nDateTimeIndex to DataFrame...\n",
datetimeindex.to_frame(index=False, name = 'DateTimeData'))

サンプルコード全体

ここまでの内容をまとめた完全なコードは以下の通りです。

import pandas as pd

# 要素数5、頻度40秒のDatetimeIndexを作成
# タイムゾーンはAustralia/Adelaideを指定
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='40S')

# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)

# DateTimeIndexの頻度を表示
print("\nDateTimeIndex frequency...\n", datetimeindex.freq)

# DateTimeIndexからDataFrameを作成
# index=Falseにより、元のインデックスは返されるDataFrameに設定されない
# nameパラメータで結果の列名を上書き
print("\nDateTimeIndex to DataFrame...\n",
datetimeindex.to_frame(index=False, name = 'DateTimeData'))

実行結果

上記のコードを実行すると、次のような出力が得られます。

DateTimeIndex...
DatetimeIndex(['2021-10-18 07:20:32.261811624+10:30',
'2021-10-18 07:21:12.261811624+10:30',
'2021-10-18 07:21:52.261811624+10:30',
'2021-10-18 07:22:32.261811624+10:30',
'2021-10-18 07:23:12.261811624+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='40S')

DateTimeIndex frequency...
<40 * Seconds>

DateTimeIndex to DataFrame...
DateTimeData
0 2021-10-18 07:20:32.261811624+10:30
1 2021-10-18 07:21:12.261811624+10:30
2 2021-10-18 07:21:52.261811624+10:30
3 2021-10-18 07:22:32.261811624+10:30
4 2021-10-18 07:23:12.261811624+10:30

まとめ

to_frame()メソッドを使えば、DateTimeIndexを簡単にDataFrameへ変換できます。index=Falseで連番インデックスを新たに割り当て、nameパラメータで列名を自由に上書きできるため、時系列データの前処理や集計の際に非常に便利です。

  1. Python・Pandas入門:DataFrameから列(カラム)を選択する方法

    PandasのDataFrameから特定の列(カラム)を抽出したい場合は、角括弧 [ ] を使って列名を指定するだけで簡単に選択できます。特別な関数は不要で、以下のように書くだけです。dataFrame[ColumnName]この記事では、実際のコード例とともに、DataFrameから列を選択する基本的な方法をわかりやすく解説します。必要なライブラリのインポートまず、Pandasライブラリをインポートします。import pandas as pdサンプルDataFrameの作成次に、動作確認用のDataFrameを作成します。ここでは「Car」(車種)と「Units」(台数)の2つの列を持つデ

  2. 【Python】PandasのDataFrameで列の文字列を大文字に変換する方法

    このチュートリアルでは、PandasのDataFrame(データフレーム)内の特定の列(例えば名前の列)をすべて大文字に変換する方法を解説します。主な方法は2つあり、それぞれコード例と実行結果とともに紹介します。方法1:str.upper() を使う方法Pandasでは、文字列型(object型)の列に対して .str アクセサを使うことで、Python標準の文字列メソッドを各要素に一括適用できます。大文字への変換には str.upper() を使用します。コード例# pandasパッケージをインポート import pandas as pd # DataFrame用のデータ data =