Python-pandas DataFrame利用columnName 插入列(column) 新增列
交換column順序並保留原始內容的方式有許多種。
大多數是用index,這篇將是用columnName
因為自己遇到的excel檔案可能有幾十個column,不想看也不想算到底是數來第幾個...
有名字好辦事啊!
插入一欄新的列(column)
這個列的內容都會為空值
首先請自行準備好有資料的DataFrame
以下程式DataFrame變數為df
col_name = df.columns.tolist()
#先取得所有的df的columns名稱
col_name.insert(col_name.index('column名稱')+1,'這邊是新插入的column名稱')
#在指定的column名稱後面增加新的一列
df=df.reindex(columns=col_name)
#將df更新為新的columns順序
以上便完成了新的一列插入
插入原本的列(column)
這邊推薦如列數很少,可以直接更新DataFrame就好
例如我有一個DataFrame名df有三個column名稱A B C
順序即為A B C
我想將其改成A C B,只要下列一行程式即可
df = pd.DataFrame(df, columns = ["A","C","B"])
我想將其改成A C,不要B,也只要下列一行程式即可
df = pd.DataFrame(df, columns = ["A","C"])
這樣一定是最快的,但column若有30個...就寫到瘋了哈哈...
但要用columnName保留內容並修改順序,會需要比較多步驟
加設同樣是column名稱A B C,我需要把C換到A後面
也就是順序變成A C B
步驟如下
df_saveC = df['C']
#1.先另外保留要換位置的column內容
df=df.drop('C',axis=1)
#2.將要換位置的column內容從DataFrame刪除
col_name = df.columns.tolist()
#3.把上面「插入一欄新的列(column)」都做一遍
#先取得所有的df的columns名稱
col_name.insert(col_name.index('A')+1,'C')
#在指定的column名稱後面增加新的一列
df=df.reindex(columns=col_name)
#將df更新為新的columns順序
df['C']=df_saveC
#4.此時C欄會是空值,所以把C指定回一開始另外保留的df_saveC
以上就完成了保留列內容的插入啦!
當column多的時候,這個小技巧很實用喔!
留言
張貼留言