Pythonを一から勉強してデータ分析できるようになる

~ Pythonとデータ分析のお勉強の記録 ~

dfの操作:データの削除と修正

[Take1] 特定の列を削除する

 

【書式】

列の削除
df.drop(columns="削除する列名")
 
dfのコピー(バックアップ的なもの)
df.copy()
複数列を削除する場合は、「列名のリスト」を引数に渡す

 

【コード】

import pandas as pd
 
# テスト用dfの作成
list1=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
index1 = ["Row1", "Row2", "Row3"]
columns1 =["Col1", "Col2", "Col3", "Col4"]
df=pd.DataFrame(data=list1, index=index1, columns=columns1)
 
# dfのコピーを取る
df_copy=df.copy()
 
# Col1 を削除する
df=df.drop(columns="Col1")
 
# 削除後のdfを表示
print(df)
 
# 削除前のdfを表示
print(df_copy)

 

【結果】

Col2 Col3 Col4
Row1 2 3 4
Row2 6 7 8
Row3 10 11 12
Col1 Col2 Col3 Col4
Row1 1 2 3 4
Row2 5 6 7 8
Row3 9 10 11 12

 

 

[Take2] 特定の行を削除する

 

【書式】

df.drop(対象行のインデックス, axis=0)

 

【コード】

import pandas as pd
 
# テスト用dfの作成
list1=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
index1 = ["Row1", "Row2", "Row3"]
columns1 =["Col1", "Col2", "Col3", "Col4"]
df=pd.DataFrame(data=list1, index=index1, columns=columns1)
 
# 2行目(行インデックス "Row2")を削除する
df=df.drop("Row2",axis=0)
 
# 削除後のdfを表示
print(df)

 

【結果】

Col1 Col2 Col3 Col4
Row2 5 6 7 8
Row3 9 10 11 12

 

今回のテスト用dfは、index名を指定しているため行番号ではなく当該名称で指定することになる。

 

[Take3] 特定の行を削除する~フィルタ後のdfを新しいdfとして残す方法

 

【書式】

df.copy()

 

【コード】

import pandas as pd
 
# テスト用dfの作成
list1=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
index1 = ["Row1", "Row2", "Row3"]
columns1 =["Col1", "Col2", "Col3", "Col4"]
df=pd.DataFrame(data=list1, index=index1, columns=columns1)
 
# 「Col1」列が「5」ではないdfのコピーを取る
df_copy=df[df["Col1"]!=5].copy()
 
# 削除後のdfを表示
print(df_copy)

 

【結果】

Col1 Col2 Col3 Col4
Row1 1 2 3 4
Row3 9 10 11 12

 

 

[take4] dfの列名を変更する

 

【書式】

df.rename(columns={'変更前列名': '変更後列名'})

 

【コード】

import pandas as pd
 
# テスト用dfの作成
list1=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
index1 = ["Row1", "Row2", "Row3"]
columns1 =["Col1", "Col2", "Col3", "Col4"]
df=pd.DataFrame(data=list1, index=index1, columns=columns1)
 
# 「Col4」列が「Col10」に変更してdfのコピーを取る
df_copy=df.rename(columns={"Col4":"Col10"}).copy()
 
# 削除後のdfを表示
print(df_copy)

 

【結果】

Col1 Col2 Col3 Col10
Row1 1 2 3 4
Row2 5 6 7 8
Row3 9 10 11 12