在表中找不到 Python pandas df.loc

我对熊猫很陌生,所以请原谅我可能没有正确捕捉或理解的任何简单错误。

我试图用 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 = 1

print('')



find = df.loc[[str(months[month]) + '/' + str(day) + '/' + str(year)], ['Temp High', 'Temp Avg', 

'Temp Low']]

查找我正在寻找的信息,但这会导致“[Index(['6/1/2012'], dtype='object')] 都不在 [index] 中””。我该如何解决这个问题?任何帮助表示赞赏。


BIG阳
浏览 116回答 2
2回答

皈依舞

您没有将日期列设置为数据框中的索引。要将任何数据框列设置为索引,请使用以下代码片段: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猫小萌

您可以不使用 loc 进行过滤,而是使用单元格值find = df[df.Date == str(months[month]) + '/' + str(day) + '/' + str(year)][['Temp High', 'Temp Avg']]或者将“日期”列指定为索引并使用然后使用 locdf1 = df.set_index(['Date']) find = df1.loc[[str(months[month]) + '/' + str(day) + '/' + str(year)], ['Temp High', 'Temp Avg']]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python