Pythonのメモ帳

numpy, pandas, tensorflow を使いこなすための忘備録

pandas の append処理で行ラベル(index番号)がおかしくなった時に行ラベルをリセットする

pandas で append処理(2つのDataFrameを縦に連結)した時、行ラベル(index番号)は順番通りにならなくなる。

 例えばこう。

import pandas as pd
import numpy as np

data = range(10)
data = np.array(data).reshape([5,2])
df1 = pd.DataFrame(data,columns=['col0','col1'])
df2 = pd.DataFrame(data,columns=['col0','col1'])
df  = df1.append(df2)
print(df)

Out:

  col0 col1
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9

 

 

df.loc()など行ラベルを参照する処理でこれがエラーを招くことがある。

そんな時は行ラベルを割り振り直すことで対処できる。

reset_index()を使う。

df = df.reset_index(drop=True)

ちゃんと返り値を保持することを忘れずに。