dfの操作:データの削除と修正
【書式】
列の削除
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
【書式】
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名を指定しているため行番号ではなく当該名称で指定することになる。
【書式】
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
【書式】
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