概要
pandasで1始まりの連番を作成、列に反映する。
背景
pandasのデータフレームをexcelやcsvで書きだす際、以下の問題点があった。
問題点
- indexではカラム名がつかない!
- 0始まりで、1始まりではない!
解決策として、'No'という名前で1始まりの連番カラムを作成する。
コード
pandas.RangeIndexで1始まりの連番を作成、それを'No'という列に反映する。
その後、csvファイルとして出力する。
serial_num.py
import pandas as pd
# データフレームを作成
d = {'A': ['apple_01', 'apple_02'], 'B': ['banana_01', 'banana_02']}
df = pd.DataFrame(data=d)
# pandasでインデックスとは別の行に連番を振る
serial_num = pd.RangeIndex(start=1, stop=len(df.index) + 1, step=1)
df['No'] = serial_num
# 並び替えを行う
df = df.loc[:, ['No', 'A', 'B']]
# 出力
print(df)
df.to_csv(index=False)
# 結果
#
# - df
# No A B
# 0 1 apple_01 banana_01
# 1 2 apple_02 banana_02
#
# - csv
# No A B
# 1 apple_01 banana_01
# 2 apple_02 banana_02