ノンプログラマーのためのPython学習サイト

Pandas|データの変更(並び替え・置換など)

困っている人

  • PandasのDataFrame(データフレーム )ってなに?
  • DataFrameのデータの変更(並び替え・更新)方法を知りたい
  • DataFrameのデータを変更する応用的な方法を教えてほしい
この記事で解決できること
  1. PandasのDataFrameが「どういうものか」分かる
  2. DataFrameのデータの変更(並び替え・更新)方法が分かる
  3. DataFrameのデータを変更する応用的な方法が分かる

この記事を書いている人

プログラミング(Python・Django・SQL・HTML・css・Bootstrapなど)を独学で習得。「Excel作業の自動化」「人工知能による予測」「Webアプリ開発」「Webスクレイピング」で業務改善×システム化を進める業務ハッカー。

Pandas DataFrame(データフレーム) とは?

DataFrame(データフレーム)とは、”Excel”や”Spreadsheet”のような表形式(2次元)で情報を管理するデータ構造のことです

データ分析用のライブラリであるPandasを使って、Excelファイル・csvファイルからDataFrame形式にデータを変換することで様々な操作が可能です。

PandasのDataFrameでは、大量のデータを高速かつ効率的に処理できるという大きなメリットがあります。データ分析や業務効率化には欠かせない仕組みです。

DataFrame|データの変更方法(並び替え・更新など)

DataFrameのデータ変更を一覧表でまとめました。No.1〜No.7まで順番に解説していきます。

No.
基本形 説明
1 df.sort_values(‘A’) A列を昇順で並び替え
2 df.sort_values(‘A’,ascending=False) A列を降順で並び替え
3 df.loc[df[‘A’] == ‘data1′,’A’] = ‘data2’ A列のdata1をdata2に変更
4 df.loc[df[‘A’].str.contains(‘data1’), ‘A’] = ‘data2’ A列のdata1を含むデータをdata2に変更
5 df[‘A’] = df[‘B’]*df[‘C’] A列に、B列とC列を掛け算した結果を反映
6 df.loc[df[‘A’] >= 5, ‘B’] = ‘○’ A列の数値が5以上のとき、B列に○を反映
7 df=df[[‘A’,’C’,’D’,’F’,’H’]] A列、C列、D列、F列、H列のDataFrameに変更

DataFrame|データの並び替え(sort_values)

「sort_values」を使うと、指定した列を並び替え(昇順)できます。

df1.sort_values('販売数量')
  1. df1.sort_values(‘販売数量’)と入力し、DataFrameの’販売数量’(列)を昇順で並び替え

DataFrame|データの並び替え(sort_values(ascending=False))

「sort_values(ascending=False)」を使うと、指定した列を「降順」で並び替えできます。

df1.sort_values('販売数量',ascending=False)
  1. df1.sort_values(‘販売数量’,ascending=False)と入力し、DataFrameの’販売数量’(列)を降順で並び替え。

DataFrame|データの変更・置き換え(loc)

「loc」を使うと、指定した列のデータを変更できます。試しに「バナナ」を「ばなな」に変更します。

df1.loc[df1['商品名'] == 'バナナ','商品名'] = 'ばなな'
  1. df1.loc[df1[‘商品名’] == ‘バナナ’,’商品名’] = ‘ばなな’と入力し、’商品名’(列)の’バナナ’を’ばなな’に変更(置き換え)

DataFrame|部分一致したデータの変更・置き換え(loc〜contains)

「loc」と「contains」を組み合わせて、指定した列の「部分一致」したデータを変更(置き換え)できます。”日本”を含む文字列を全て”日本”に変更してみます。

df1.loc[df1['産地'].str.contains('日本'), '産地'] = '日本'
  1. df1.loc[df1[‘産地’].str.contains(‘日本’), ‘産地’] = ‘日本’と入力し、’産地’(列)に’日本’が含まれているデータを全て’日本’に変更(置き換え)

DataFrame|新しい列にデータ(計算結果)を追加

新しい列にデータ(単価*販売数量)を追加する方法を紹介します。

df1['売上'] = df1['単価']*df1['販売数量']
  1. df1[‘売上’] = df1[‘単価’]*df1[‘販売数量’]と入力し、’売上’(新しい列)が追加され、’単価’と’販売数量’を掛け算した結果を表示。

DataFrame|新しい列にデータ(条件分岐の判定結果)を追加

「df1[‘列名’]=”」と入力すると、新しい列(空のデータ)を追加できます。また、「df1.loc[df1[条件式] 」と入力すると、条件分岐の判定結果を追加できます。

df1['人気商品']=''
df1.loc[df1['販売数量'] >= 5, '人気商品'] = '○'
  1. df1[‘人気商品’]=”と入力し、新しい列(人気商品)を追加
  2. df1.loc[df1[‘販売数量’] >= 5, ‘人気商品’] = ‘○’と入力し、’販売数量’(列)が5以上のとき、’人気商品’(列)に’○’を追加

DataFrame|表示されている項目(列データ)の変更

DataFrameの表示されている項目(列データ)を変更する方法を紹介します。

df1=df1[['日付','商品名','産地','売上','人気商品']]
  1. df1=df1[[‘日付’,’商品名’,’産地’,’売上’,’人気商品’]]と入力し、表示したい項目だけを表示。

DataFrame|データの変更のまとめ

Pandasを使ったDataFrameの並び替え・変更方法について解説しました。

「sort_values」を使うと、指定の列に対して並び替えを行うことができ、「loc」使うと、指定の列のデータを変更できます。

また、DataFrameに新しい列(columns)を追加し、演算の結果や条件式の結果を追加することも可能です。

データ分析に欠かせないテクニックなので、覚えておくと便利です。