Python 複数のインデックス番号の行を残すor削除する「Pandas」

 本記事では、表題の雛形コードを載せました。

# 指定インデックス番号の行を残す場合
target_list = [1, 5, 503, 506]
df1 = df.loc[target_list, :]

# 指定インデックス番号の行を削除する場合
df2 = df.drop(target_list)

例えば、下図のような506行のデータがあるとします。

f:id:HK29:20210601212324p:plain

下図は、例えば行番号「1, 5, 503, 506」の4つのデータをリストで指定して、それらの行を残した結果です。4行だけ残っています。

f:id:HK29:20210601212346p:plain

一方、逆に、下図は「1, 5, 503, 506」の4行を削除した結果です。502行残っています。

f:id:HK29:20210601212408p:plain

■本プログラム

#!/usr/bin/env python
# coding: utf-8

# In[1]:


import pandas as pd
import numpy as np

df = pd.read_csv('boston_dataset.csv')
df


# In[2]:


# インデックス番号を1から振り直す
df.index = np.arange(1, len(df) + 1)
df


# In[3]:


# 指定インデックス番号の行を残す
target_list = [1, 5, 503, 506]
#df1 = df[df.index.isin(target_list)]
df1 = df.loc[target_list, :]
df1


# In[4]:


# 指定インデックス番号の行を削除する
df2 = df.drop(target_list)
df2


# In[ ]:

以上

<広告>