我有 20 列的資料框。它們都有一個共同的文本和一個序列號。我想修剪文本部分并使名稱更短。下面是一個例子:
xdf = pd.DataFrame({'Column1':[10,20],'Column2':[80,90]})
Column1 Column2
0 10 80
1 20 90
預期輸出:
C1 C2
0 10 80
1 20 90
解決方案1:
oldcols = ['Column1','Column2']
newcols = ['C1','C2']
xdf.rename(columns=dict(zip(oldcols,newcols)),inplace=True)
C1 C2
0 10 80
1 20 90
解決方案2:
for i in range(len(oldcols)):
xdf.rename(columns={'%s'%(xdf[i]):'%s'%(xdf[i].replace('Column','C'))},inplace=True)
raise KeyError(key) from err
解決方案 1 作業正常,但我必須準備一個新舊列名串列。相反,我想遍歷每個列名并替換列文本。但是,解決方案 2 不起作用。
uj5u.com熱心網友回復:
您可以str.findall在列上使用拆分為文本和數字;然后使用串列推導僅取第一個字母并將其與每個列名的數字連接起來:
xdf.columns = [x[0] y for li in xdf.columns.str.findall(r'([A-Za-z] )(\d )') for x,y in li]
輸出:
C1 C2
0 10 80
1 20 90
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433572.html
下一篇:改變列名的結構
