我正在制作一些腳本,其中我的要求是從列名中洗掉一些特殊字符并將資料框制作為多標題。代碼
import pandas as pd
import numpy as np
cars = {'day':['aug','aug','sep','sep','aug'],
'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4','Hyundai Elite i20'],
'Type':['sedan,','sedan','hatchback','hatchback','hatchback'],
'Down Price': [22000,25000,27000,35000,10000]
}
df = pd.DataFrame(cars, columns = ['day','Brand', 'Type','Down Price'])
dfpivot=pd.pivot_table(df,index=['day'],columns=['Brand','Type'],values=['Down Price'],aggfunc=np.max)
dfpivot=pd.DataFrame(dfpivot.to_records())
發布這個我的要求是將列名中的“(”&“)”替換為“,”以拆分列名以使其成為多標題我嘗試過的:
dfpivot.columns=dfpivot.columns.str.replace("(","").replace(")","")
dfpivot.columns = dfpivot.columns.str.split(',', expand=True)
我收到以下錯誤,我也嘗試檢查發布的類似問題,但沒有幫助,如果有人可以幫助解決,我將不勝感激。
10 dfpivot=pd.pivot_table(df,index=['day'],columns=['Brand','Type'],values=['Down Price'],aggfunc=np 中的 AttributeError 追溯(最近一次呼叫) .max) 11 dfpivot=pd.DataFrame(dfpivot.to_records()) ---> 12 dfpivot.columns=dfpivot.columns.str.replace("(","").replace(")","")第13話
AttributeError: 'Index' 物件沒有屬性 'replace'
uj5u.com熱心網友回復:
替換除字母數字、空格和逗號之外的所有內容,在列中拆分和展開。
dfpivot.columns=dfpivot.columns.str.replace('[^\w\,\s]','',regex=True).str.split(',', expand=True)
uj5u.com熱心網友回復:
Pandasreplace回傳一個Index,因此您需要str在其上使用另一個:
dfpivot.columns=dfpivot.columns.str.replace("(","").str.replace(")","")
uj5u.com熱心網友回復:
錯誤是因為第二個replace缺少str訪問器:
dfpivot.columns = dfpivot.columns.str.replace("(", "").str.replace(")", "")
# ^^^
但是,使用它更簡單str.strip:
dfpivot.columns = dfpivot.columns.str.strip("()").str.split(",", expand=True)
# day 'Down Price'
# NaN 'Audi A4' 'Ford Focus' 'Honda Civic' 'Hyundai Elite i20' 'Toyota Corolla'
# NaN 'hatchback' 'hatchback' 'sedan' 'hatchback' 'sedan'
# 0 aug NaN NaN 22000.0 10000.0 25000.0
# 1 sep 35000.0 27000.0 NaN NaN NaN
但請注意,這將在列名中留下單引號。如果您不想要這些引號,請使用str.replace正則運算式:
dfpivot.columns = dfpivot.columns.str.replace(r"[()']", "", regex=True).str.split(",", expand=True)
# day Down Price
# NaN Audi A4 Ford Focus Honda Civic Hyundai Elite i20 Toyota Corolla
# NaN hatchback hatchback sedan hatchback sedan
# 0 aug NaN NaN 22000.0 10000.0 25000.0
# 1 sep 35000.0 27000.0 NaN NaN NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362547.html
