# Python-pandas DataFrame利用columnName 插入列(column) 新增列 ###### tags: `python` 交換column順序並保留原始內容的方式有許多種。 大多數是用index,這篇將是用columnName 因為自己遇到的excel檔案可能有幾十個column,不想看也不想算到底是數來第幾個... 有名字好辦事啊! 插入一欄新的列(column) 這個列的內容都會為空值 首先請自行準備好有資料的DataFrame 以下程式DataFrame變數為df ```python= 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,只要下列一行程式即可 ```python= df = pd.DataFrame(df, columns = ["A","C","B"]) ``` 我想將其改成A C,不要B,也只要下列一行程式即可 ```python= df = pd.DataFrame(df, columns = ["A","C"]) ``` 這樣一定是最快的,但column若有30個...就寫到瘋了哈哈... 但要用columnName保留內容並修改順序,會需要比較多步驟 加設同樣是column名稱A B C,我需要把C換到A後面 也就是順序變成A C B 步驟如下 ```python= 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多的時候,這個小技巧很實用喔!
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up