我有一個帶有數字或列的 df,我想用增量數字重命名這些數字,選擇起始和結束范圍。

對于上圖,我只想選擇列 BD,并將它們重命名為 1-4。所以生成的資料框將是:

所以基本上通過索引號選擇標題并添加增量數字。
編輯:上面的資料框
data = [['a','b','c','d','e','f'], ['a','b','c','d','e','f'], ['a','b','c','d','e','f'],['a','b','c','d','e','f']]
df = pd.DataFrame(data, columns = ['A','B','C','D','E','F'])
uj5u.com熱心網友回復:
使用rename與選定的列DataFrame.loc-在這里之間B和E:
c = df.loc[:, 'B':'E'].columns
df = df.rename(columns=dict(zip(c, range(1, len(c) 1))))
print (df)
A 1 2 3 4 F
0 a b c d e f
1 a b c d e f
2 a b c d e f
3 a b c d e f
uj5u.com熱心網友回復:
如果這是您必須經常做的事情,您可以為此撰寫一個自定義函式:
def col_rename(df, start, stop, inplace=False):
cols = list(df.loc[:, start:stop].columns)
new_cols = df.columns.map(lambda x: {k:v for v,k in
enumerate(cols, start=1)
}.get(x, x))
if inplace:
df.columns = new_cols
else:
return new_cols
df.columns = col_rename(df, 'B', 'F')
# or
# col_rename(df, 'B', 'F', inplace=True)
輸出:
A 1 2 3 4 F
0 0 1 2 3 4 5
使用的輸入:
df = pd.DataFrame([range(6)], columns=list('ABCDEF'))
# A B C D E F
# 0 0 1 2 3 4 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/421088.html
標籤:
上一篇:通過字典創建動態列,然后使用填充減少DataFrame
下一篇:格式化熊貓表并另存為圖片
