当前位置: 首页 > 知识库问答 >
问题:

访问数据帧索引时出错

庄经国
2023-03-14

尝试以这种方式访问pandas数据帧中的单个元素时出错test_df[“LABEL”][0]。以下是关于如何加载数据的代码片段:

print "reading test set"
test_set = pd.read_csv(data_path+"small_test_products.txt", header=0, delimiter="|")

print "shape of the test set", test_set.shape 
test_df = pd.DataFrame(test_set)
lengthOfTestSet = len(test_df["LABEL"])
print test_df["LABEL"][0]

以下是我得到的错误:

文件“code.py”,第80行,在getitem result=self.index.get_value(self,key)文件“/usr/local/lib/python2.7/dist-packages/pandas/core/series.py”的第3562行,在get_value loc=self.index.get_value(self,key)文件“/usr/local/lib/python2.7/dist-packages/pandages/core/index.py/index.py”中“/usr/local/lib/python2.7/dist packages/pandas/core/index.py”,第3619行,在get_loc return super(Float64Index,self)中。get_loc(key,method=method)文件“/usr/local/lib/python2.7/dist packages/pandages/core/index.py”,第1572行,在get_loc return self中。get_loc(_value_from_对象(key))文件“pandas/index.pyx,第134行,在pandas.index.IndexEngine.get_loc(pandas/index.c:3824)文件“pandas/index.pyx”中,第154行,在pandas.index.IndexEngine.get_loc(pandas/index.c:3704)文件“pandas/hashtable.pyx”中,第541行,在pandas.hashtable.float64 hashtable.get_项(pandas/hashtable.c:9914)中
文件“pandas/hashtable.pyx”,第547行,在pandas.hashtable.float64 hashtable.get_项(pandas/hashtable.c:9852)中,key错误:0.0

我错过了什么?

共有1个答案

养枫涟
2023-03-14

就像EdChum说的,0可能不在你的索引中。

尝试:df.iloc[0]df['tag']. iloc[0],这是基于整数的位置。

如果您遇到问题,可以重置索引:df.reset_index(drop=True)

看看熊猫的索引文档了解更多信息

 类似资料:
  • 我有两个形状相同的python数据帧,例如: 我想使用df2中的值作为行索引来选择df1中的值,并创建一个形状相等的新数据帧。预期结果: 我已尝试使用.loc,它在单个列中运行良好: 但是我不能同时在所有列上使用. loc或. iloc。我想避免循环来优化性能,因为我正在处理一个大数据帧。有什么想法吗?

  • 我到处寻找这个,但我似乎找不到它(尽管它一定非常琐碎)。 我的问题是,我想检索数据帧的第一个和最后一个条目的列的值。但是如果我这样做了: 我得到: 但是如果我这样做了: 我得到: 用不同的格式。理想情况下,我希望能够访问数据帧的最后一个索引的值,但我找不到如何访问。 我甚至尝试创建一个包含索引值的列(IndexCopy),然后尝试: 但这也会产生一种不同的格式(因为df.tail(1)['Inde

  • 我有以下代码: 这工作正常,直到我这样做(试图设置列'idx'作为索引的数据帧) 这会引发一个错误 这是什么意思?

  • 我正在尝试从多索引数据帧中仅使用一个索引来创建新的数据帧。 理想情况下,我想要这样的东西: 和: 基本上,我想删除除level之外的多索引的所有其他索引。有没有一个简单的方法可以做到这一点?

  • 问题内容: 我正在尝试将csv文件中的数据读取到pandas数据框中,并访问第一列“日期” 产生以下结果 如果我尝试访问“打开”或“音量”之类的任何其他列,则它按预期运行 问题答案: 您很可能在文件的开头有一个额外的字符,该字符位于您的第一列名称之前。只需将您的输出复制/粘贴到非Unicode控制台生成。

  • 假设是一个数据帧。 只接受名字 只接受整数(实际放置) 接受名称和整数: 当引用行时,只希望获得名称。例如 抛出一个错误,它不会返回“2”。 当引用列时,iloc更喜欢整数,而不是名称。例如 返回“三”,而不是2。(尽管返回)。 奇怪的是,我喜欢完全相反的功能。通常我的列名非常有意义,所以在我的代码中我直接引用它们。但是由于大量的观察清理,我的熊猫数据帧中的行名称通常不对应于。 我意识到我可以使用