我对熊猫很陌生,所以请原谅我可能没有正确捕捉或理解的任何简单错误。我试图用 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
提交
取消