Pandas修改DataFrame列名的兩種方法實例
輸入:
$a $b $c $d $e 0 1 2 3 4 5
期望的輸出:
a b c d e
0 1 2 3 4 5
原數據DataFrame:
import pandas as pd df = pd.DataFrame({'$a': [1], '$b': [2], '$c': [3], '$d': [4], '$e': [5]})
解決方法1:通過DataFrame.columns類的自身屬性修改
1. 暴力修改
df.columns = ['a', 'b', 'c', 'd', 'e']
2. stirp 方法
strip() 方法用於移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。
df.columns = df.columns.str.strip('$')
3. lambda 表達式
map() 會根據提供的函數對指定序列做映射。以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
lambda x: x[1:]表示取第二個元素,因此列表名$a、$b等隻取出a、b。
df.columns = df.columns.map(lambda x: x[1:])
解決方法2:通過DataFrame.rename()函數修改
1. 暴力修改(可以隻修改部分列名)
df.rename(columns=('$a': 'a', '$b': 'b', '$c': 'c', '$d': 'd', '$e': 'e'}, inplace=True)
2. lambda 表達式
調用replace函數,把$替換為空。
df.rename(columns=lambda x:x.replace('$',''), inplace=True)
pandas 更改DataFrame的行名或列名實例
更改行名或更改列名可以選用rename函數。
首先,構建一個dataframe:
import pandas as pd d={'one':{'a':1,'b':2,'c':3,'d':4},'two':{'a':5,'b':6,'c':7,'d':8},'three':{'a':9,'b':10,'c':11,'d':12}} df=pd.DataFrame(d) print(df) 1 2 3 4
輸出結果為:
one two three
a 1 5 9
b 2 6 10
c 3 7 11
d 4 8 12
更改列名
將第2列列名更改為twotwo
df.rename(columns={'two':'twotwo'},inplace=True) print(df) 1 2
輸出結果為:
one twotwo three
a 1 5 9
b 2 6 10
c 3 7 11
d 4 8 12
更改行名
將第1行和第2行的行名更改為aa,bb
df.rename(index={'a':'aa','b':'bb'},inplace=True) print(df) 1 2
輸出結果為:
one twotwo three
aa 1 5 9
bb 2 6 10
c 3 7 11
d 4 8 12
更改成功。
當然,也可以選擇暴力更改行名或列名:
df.columns=['onon','twtw','thth'] print(df) 1 2
輸出結果為:
onon twtw thth
aa 1 5 9
bb 2 6 10
c 3 7 11
d 4 8 12
總結
到此這篇關於Pandas修改DataFrame列名的兩種方法的文章就介紹到這瞭,更多相關Pandas修改DataFrame列名內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 詳解pandas映射與數據轉換
- Python數據分析之 Pandas Dataframe修改和刪除及查詢操作
- Pandas reindex重置索引的使用
- pandas快速處理Excel,替換Nan,轉字典的操作
- Python數據分析23種Pandas核心操作方法總結