[英]How to rename columns by appending the row value to the column name in Pandas?
我有一個 dataframe 這樣的:
**A** **B** **C** **Name**
Hello No Why -
2 5 303 Sir
我想通過將行值附加到列名來重命名列:
A_Hello B_No C_Why Name
2 5 303 Sir
(更改列名后,該行將被刪除)
這是一個更通用的解決方案,適用於更大的 dataframe 而無需手動重命名列:
df.columns = [col.replace('*','')+ '_' +df.iloc[0,idx] for idx, col in enumerate(df.columns)]
df = df[1:]
print(df)
#output:
A_Hello B_No C_Why Name_-
1 2 5 303 Sir
另一種方法。 不需要任何手動操作,並且在最后一列名稱的“名稱”之后也沒有_
。
name_list = []
for a,b in zip ([item.replace('*','') for item in df.columns.to_list()],df.iloc[0,:].to_list()):
if b.isalpha():
name_list.append(f'{a}_{b}')
else:
name_list.append(a)
df.rename(columns={x:y for x,y in zip(df.columns,name_list)}, inplace = True)
df = df[1:]
Output
A_Hello B_No C_Why Name
2 5 303 Sir
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.