2
2

Pandasの列単位での演算、加工

Posted at

はじめに

Pandasの演算、加工の基本に関しての備忘録です。
コードを書き始めて1年以内の若輩者です😅
もし間違いがあれば、ご指摘いただけると助かります🙇

🦁結論🦁

Excelのように列ごとに演算、加工が可能。
シンプルに列を選択して演算を入れて計算、加工することが可能。

押さえておくべき点

  • 演算結果を元のDataFrameに直接反映させるか、新しいDataFrameを作成するかを選択できる。
  • 日付や時刻のデータを加工して、曜日や月などの情報を抽出もできる。

注意点

  • データ型を確認する必要がある。(特に、数値演算を行う際に文字列型のデータが含まれているとエラーが発生するため、dtype属性やastype()メソッドを用いてデータ型を確認・変換することが重要)
  • inplace=Trueの使用: 元のデータを上書きすると、元に戻せないため注意が必要。

コード例

数値での演算

新しい欄を作成してそこに演算した数値を反映させる。
既存部分に追加するなど可能。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40]
})

# 列Aに2を足す
df['A'] = df['A'] + 2

# 列Bから列Aを引いた結果を新しい列Cに保存
df['C'] = df['B'] - df['A']

# 列Aの平均値を計算
average_of_A = df['A'].mean()

# 条件付きで新しい列Dを作成(列Aが3より大きい場合はTrue、そうでなければFalse)
df['D'] = df['A'] > 3

# 日付列の加工(ここではサンプルとして現在日付を追加)
df['Date'] = pd.to_datetime('2024-02-27')
df['Year'] = df['Date'].dt.year

print(df)

文字列の演算

文字列になにかを追加したい場合にも使える。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'First Name': ['John', 'Jane', 'Jim', 'Jill'],
    'Last Name': ['Doe', 'Doe', 'Smith', 'Johnson']
})

# 名前と姓を結合してフルネームを作成
df['Full Name'] = df['First Name'] + ' ' + df['Last Name']

# 文字列の置換(例えば、'John'を'Jonathan'に置換)
df['First Name'] = df['First Name'].replace('John', 'Jonathan')

# 文字列の大文字化
df['Last Name'] = df['Last Name'].str.upper()

# 特定の文字列を含む行をフィルタリング
contains_doe = df['Last Name'].str.contains('DOE')

# 文字列の長さを新しい列に追加
df['Name Length'] = df['Full Name'].str.len()

print(df)
print(contains_doe)

まとめ✍️

Excelよりも全然早く、また自由も効く。
文字列も色々反映できる。

参考にした記事📕

[Pandasの基本~表
形式データ・データ分析~初心者向けのDataFrameの操作入門!]
(https://youtu.be/HYWQbAdsG6s?si=m4Tl3UlmXLlhTxhZ)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2