見出し画像

[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からの連番を設定する実装についてご紹介しました。

参考サイト


この記事が気に入ったらサポートをしてみませんか?