[Python] pandas 1から始まる連番を設定した列を追加する
はじめに
pandasのDataFrameで、「No」カラムを追加し、その列に、1からの連番を設定する実装についてご紹介します。
インデックスを使用する方法を考えましたが、下記の問題から断念しました。
pandas.DataFrame.reset_indexメソッドで、インデックスを振りなおしする場合、1から開始するオプションがない
連番を振る列に対し、カラム名を設定したい
使用するデータ
下記サイトを使用してダミーデータ作成しました。
使用するライブラリ
pandas
データ分析をサポートするPythonのライブラリです。
動作環境
windows11
Jupyter Notebook 6.4.8
Python 3.8.12
実装
CSVファイルを読み込みます。
import pandas as pd
file_path = "csv/dummy_personal_info.csv"
df = pd.read_csv(file_path, encoding="cp932")
インデックスを差分が見えやすいように、「年齢」のカラムでソートして並び替えを行います。
df.sort_values(['年齢'], ascending=True, inplace=True)
連番を設定するために、range関数を使って、開始を1とし、終了を行数プラス1の数で設定し、DataFrameに「No」カラムを新規追加します。
df['No'] = range(1, len(df.index) + 1)
下記のように、DataFrameに「No」カラムが追加され、1から連番が振られているのが確認できました!
「No」カラムを列の先頭に移動します。
df = df[['No', '名前', 'ふりがな', 'アドレス', '性別', '年齢', '都道府県']]
見出し行は出力、インデックスは出力せずに、CSVファイルに書き出しをします。
path = r'./sn_personal_info.csv'
df.to_csv(path, header=True, index=False, encoding='cp932')
書き出しした結果は、下記となりました。
まとめ
今回は、pandasのDataFrameで、「No」カラムを追加し、その列に、1からの連番を設定する実装についてご紹介しました。
参考サイト
この記事が気に入ったらサポートをしてみませんか?