为了账号安全,请及时绑定邮箱和手机立即绑定

在表中找不到 Python pandas df.loc

在表中找不到 Python pandas df.loc

BIG阳 2023-12-26 15:09:06
我对熊猫很陌生,所以请原谅我可能没有正确捕捉或理解的任何简单错误。我试图用 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,则检查新索引列是否有重复项


查看完整回答
反对 回复 2023-12-26
?
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']]


查看完整回答
反对 回复 2023-12-26
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信