我對熊貓很陌生,所以請原諒我可能沒有正確捕捉或理解的任何簡單錯誤。我試圖用 pandas 在給定的 .csv 文件中查找特定的行和列。下面附上表格供參考。 餐桌信息該表的時間范圍為 2015 年 1 月 1 日至 2017 年 12 月 31 日。我試圖根據用戶輸入查找特定的月份和年份行,以及查找“Temp High”、“Temp Avg”和“Temp Low”列。我使用 1 作為占位符。環顧四周,我嘗試使用months = {'January': 1, 'February': 2, 'March': 3, 'April': 4, 'May': 5, 'June': 6, 'July': 7, 'August': 8, 'September': 9, 'October': 10, 'November': 11, 'December': 12}month = str(input('Enter a month: '))year = str(input('Enter a year: '))day = 1print('')find = df.loc[[str(months[month]) + '/' + str(day) + '/' + str(year)], ['Temp High', 'Temp Avg', 'Temp Low']]查找我正在尋找的信息,但這會導致“[Index(['6/1/2012'], dtype='object')] 都不在 [index] 中””。我該如何解決這個問題?任何幫助表示贊賞。
2 回答

皈依舞
TA貢獻1851條經驗 獲得超3個贊
您沒有將日期列設置為數據框中的索引。要將任何數據框列設置為索引,請使用以下代碼片段:
df.set_index("ColumnName", inplace = True)
Pandas set_index() 是一種將列表、系列或數據框設置為數據框索引的方法。
句法:
Dataframe.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
參數
鍵:列名或列名列表
drop:布爾值,如果 True,則刪除用于索引的列
追加:如果為真,則將該列追加到現有索引列
inplace:如果 True,則在數據框中進行更改
verify_integrity:如果為 True,則檢查新索引列是否有重復項

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
您可以不使用 loc 進行過濾,而是使用單元格值
find = df[df.Date == str(months[month]) + '/' + str(day) + '/' + str(year)][['Temp High', 'Temp Avg']]
或者將“日期”列指定為索引并使用然后使用 loc
df1 = df.set_index(['Date']) find = df1.loc[[str(months[month]) + '/' + str(day) + '/' + str(year)], ['Temp High', 'Temp Avg']]
添加回答
舉報
0/150
提交
取消