簡體   English   中英

如何在Python中以特定方式重命名dataframe列

[英]How to rename dataframe columns in specific way in Python

我有 dataframe (df) ,其列名如下所示,我想將其重命名為任何特定名稱

更名條件:

  1. 刪除列名中的下划線-
  2. -之后的第一個字母從小寫替換為大寫。

原始列名稱

df.head(1)

risk_num  start_date end_date
 12        12-3-2022  25-3-2022

預期的列名稱

df.head(1)

riskNum  startDate   endDate
 12        12-3-2022  25-3-2022

這怎么能在python中完成。

使用Index.map

#https://stackoverflow.com/a/19053800/2901002
def to_camel_case(snake_str):
    components = snake_str.split('_')
    # We capitalize the first letter of each component except the first one
    # with the 'title' method and join them together.
    return components[0] + ''.join(x.title() for x in components[1:])

df.columns = df.columns.map(to_camel_case)
print (df)
   riskNum  startDate    endDate
0       12  12-3-2022  25-3-2022

或者修改pandas的正則解決方案:

#https://stackoverflow.com/a/47253475/2901002
df.columns = df.columns.str.replace(r'_([a-zA-Z0-9])', lambda m: m.group(1).upper(), regex=True)
print (df)
   riskNum  startDate    endDate
0       12  12-3-2022  25-3-2022

使用str.replace

# Enhanced by @Ch3steR
df.columns = df.columns.str.replace('_(.)', lambda x: x.group(1).upper())
print(df)

# Output
# risk_num start_date   end_date  very_long_column_name
   riskNum  startDate    endDate  veryLongColumnName
0       12  12-3-2022  25-3-2022                   0

以下代碼將為您完成

df.columns = [x[:x.find('_')]+x[x.find('_')+1].upper()+x[x.find('_')+2:] for x in df.columns]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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