Pandas DataFrame データ処理 - 列処理

目次

1. 列にデータを挿入する

2. 列の追加または変更

3. 列全体に対して操作を実行します。

4. 関数を使用して列の各値を処理する

5. 必要な列を選択します

6. 列名の変更

7. 列の削除


まず、pandas ライブラリをインポートし、データ フレーム オブジェクトを作成します。

import pandas as pd
data = pd.DataFrame()

1. 列にデータを挿入する

data にはリストまたは Series オブジェクトの形式でデータを渡します。列名は「col_1」で、自分で定義できます。

data["col_1"] = ["2023-01-01", "2023-02-05", "2023-03-14", "2023-12-31", "2023-05-06"]

2. 列の追加または変更

「今日」という名前の列を追加します

from datetime import datetime as dt
data["today"] = dt.today()

日付操作を実行できるように、col_1 列を日付形式に変更します。

data["col_1"] = pd.to_datetime(data["col_1"])

3. 列全体に対して操作を実行します。

今日の列からcol_1列を減算してcol_2列を生成します

data["col_2"] = data["today"] - data["col_1"]

ただし、この方法で処理される差分データ型は、日時ライブラリの Timedelta オブジェクトです。このデータ型は、データ分析ではほとんど重要ではありません。特定の日の差分を抽出するには、Timedelta 属性を呼び出す必要があります。詳細については、セクション 4 を参照してください。手術。

4. 関数を使用して列の各値を処理する

処理に使用する関数が比較的単純な場合は、次のメソッドを使用できます。apply メソッドでラムダを使用して関数を定義します (x は処理対象のオブジェクトを表します)。次のコードでは、各「時間差」オブジェクトに対応しますシリーズ Col_2. (Timedelta) では、「.days」を使用して days 属性にアクセスし、時差を日数に変換します (データ型もそれに応じて整数に変更されます)。

data["col_2"] = data["col_2"].apply(lambda x: x.days)

データを処理する関数がより複雑な場合は、最初に関数を定義してからデータを処理することもできます。定義された関数の最初のパラメーターのデフォルトは、データ フレームで渡される値になります。複数のパラメーターがある場合は、呼び出し時に args を使用します。次に、それをラップする反復可能なオブジェクト (リスト、タプルなど) を追加すると、渡された実パラメータが関数内の仮パラメータの位置に 1 対 1 で対応します。

関数を apply に渡すときは括弧は必要ないことに注意してください。

def get_date_format(x, y):
    x = dt.strftime(x, y)
    return x

data["col_3"] = data["col_1"].apply(get_date_format, args=["%Y年%m月%d日"])

5. 必要な列を選択します

メソッドは比較的単純ですが、詳細は説明しませんので、コードに直接進みましょう。

data = data[["col_2", "col_3"]]

6. 列名の変更

メソッドは比較的単純ですが、詳細は説明しませんので、コードに直接進みましょう。

data.rename(columns={"col_2":"天数差", "col_3":"日期"}, inplace=True)


# 也可以用以下方法,修改全部列名
columns = ["原日期", "今天", "天数差", "修改后日期"]
data.columns = columns

inplace=True はオブジェクトに対する直接の変更を示します

7. 列の削除

メソッドは比較的単純ですが、詳細は説明しませんので、コードに直接進みましょう。

data.drop(["原日期", "今天"], axis=1, inplace=True)

リスト内の値は列名を表しており、上記のコードを実行すると「元の日付」と「今日」の2つの列が削除されます。

おすすめ

転載: blog.csdn.net/qq_29108959/article/details/131572699