[英]Can't Index my Pandas Dataframe by Column
readHTML=pd.read_html(url)
#The pandas read turned back a list with some useless data
df=readHTML[11]
#Returned as data frame
但是,我注意到我無法按列索引我的 DataFrame 當我這樣做時:
df['Trade Date']
我找回了錯誤:
KeyError: '交易日期'
上述異常是以下異常的直接原因:
KeyError Traceback(最近調用最后)/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3361 return self._engine.get_loc (casted_key) 3362 除了 KeyError 為 err: -> 3363 raise KeyError(key) from err 3364 3365 if is_scalar(key) and isna(key) and not self.hasnans:
KeyError: '交易日期'
所以我認為這是空間的問題,所以我嘗試:
df.rename(columns = {'Trade Date':'Trade_Date', 'Filing Date':'Filing_Date', 'Trade Type':'Trade_Type'}, inplace=True)
df.columns
我得到了結果:
Index(['X', 'Filing Date', 'Trade Date', 'Ticker', 'Insider Name', 'Title', 'Trade Type', 'Price', 'Qty', 'Owned', 'ΔOwn' , '值', '1d', '1w', '1m', '6m'], dtype='object')
它來自列表的事實可能是罪魁禍首:
type(df)
結果:
pandas.core.frame.DataFrame
我究竟做錯了什么?
謝謝
在這里輸入代碼
這個怎么樣:
import pandas as pd
# Create sample
data = {'Trade Date': ['2020-12-01', '2020-12-02', '2020-12-03', '2020-12-04'], 'Filing Date': ['Filing Date1', 'Filing Date2', 'Filing Date3', 'Filing Date4'], 'Trade Type':['A', 'B', 'C', 'D']}
# Create DataFrame
df = pd.DataFrame(data)
# Create Index
df = df.set_index('Trade Date')
df
結果:
我最終手動命名了這些列:
df.columns=['X', 'Filing_Date', 'Trade_Date', 'Ticker', 'Insider_Name', 'Title', 'Trade_Type', 'Price', 'Qty', 'Owned', 'ΔOwn', 'Value', '1d', '1w','1m', '6m']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.