簡體   English   中英

如何通過將行值附加到 Pandas 中的列名來重命名列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM