我想用Python对数据进行切片。分割数据帧的基本任务会给我带来意想不到的错误。
我的代码是:
import pandas as pd
test_file = pd.read_csv("C:/Users/Lenovo/Desktop/testfile.csv")
test_select = test_file[["Category", "Shop"]]
print(test_select[1,1])
代码打印(测试选择[1,1])
应显示第二列的第二行。
错误html" target="_blank">消息:
文件“pandas_libs\hashtable_class_helper.pxi”,第1500行,在pandas中_图书馆。哈希表。PyObjectHashTable。get_项键错误:(1,1)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用):文件“C:/Users/Lenovo/.PyCharmCE2018.1/config/scratches/Dictionary.py”,第8行,打印(h_select[1,1])文件“C:\Users\Lenovo\PycharmProjects\mindnotez\venv\lib\site packages\pandages\core\frame.py”,第2688行,在getitem return self中_getitem_列(键)文件“C:\Users\Lenovo\PycharmProjects\mindnotez\venv\lib\site packages\pandas\core\frame.py”,第2695行,在_getitem_列返回self_获取项目缓存(密钥)文件“C:\Users\Lenovo\PycharmProjects\mindnotez\venv\lib\site packages\pandas\core\generic.py”,第2489行,位于项目缓存值=self中_数据获取(项目)文件“C:\Users\Lenovo\PycharmProjects\mindnotez\venv\lib\site packages\pandas\core\internals.py”,第4115行,在get loc=self中。项目。获取get_loc return self中第3080行的位置(项目)文件“C:\Users\Lenovo\PycharmProjects\mindnotez\venv\lib\site packages\pandas\core\index\base.py”_发动机获取pandas中第140行的loc(self.\u可能\u cast\u indexer(key))文件“pandas\u libs\index.pyx”_图书馆。指数IndexEngine。获取pandas中第162行的文件“pandas\u libs\index.pyx”_图书馆。指数IndexEngine。在pandas中获取第1492行的文件“pandas\u libs\hashtable\u class\u helper.pxi”_图书馆。哈希表。PyObjectHashTable。获取pandas中第1500行的项目文件“pandas\u libs\hashtable\u class\u helper.pxi”_图书馆。哈希表。PyObjectHashTable。get_项键错误:(1,1)
当我打印print(test_select.head())
时,我得到以下输出:
Category Shop
0 Jidlo Albert
1 Jidlo BILLA
2 Jidlo Albert
3 Jidlo Albert
4 Restaurant Kockafé Freyd
像print(test_select[1:4])
一样切片数据帧,打印行1:3。使用命令print(test_select[1,1])
,我想要第二列,第二行。但是,我收到上面的错误消息。
为什么我会收到KeyError异常?我错过了什么?
我使用:
使用loc
这是使用索引和列,而不是位置,这里的索引似乎是从0到n,因此在切片行时loc
等于iloc
df.loc[1,'Shop']
'BILLA'
代码打印(测试选择[1,1])
应显示第二列的第二行。
不,不应该。语法df[x]
通常用于检索列(系列)、布尔行索引或行切片。pd的这些用法。__getitem__
,其中df[]
是语法糖,没有方便的记录。一般来说,它们应该被视为快捷方式,如果您不确定,您应该选择loc
/iloc
/at
/iat
,视情况而定。
要通过整数位置索引检索标量值,可以使用pd。数据帧。iat
:
df.iat[1, 1]
当您想要分割数据帧时
按行号
df.iloc[[1, 5]] # to get rows 1 and 5
df.iloc[1:6] # to get rows 1 to 5 inclusive
您还可以将其缩小到特定列,如下所示(以避免链索引)
df.iloc[[1, 5], df.columns.get_loc('Shop')]
或多个列
df.iloc[[1, 5], df.columns.get_indexer(['Shop', 'Category'])]
基于标签的索引
# Numeric
df.loc[[1, 5]] # 1 and 5 are considered labels here
df.loc[[1, 5], 'Shop']
df.loc[[1, 5], ['Shop', 'Category']]
# Textual or otherwise
df.set_index('Shop', inplace=True)
df.loc[['BILLA', 'Albert'], 'Category']
我正在使用从h5文件加载的调查数据作为通过熊猫包。在此中,所有行都是单个调查的结果,而列是单个调查中所有问题的答案。 我的目标是将此数据集缩减为更小的,仅包括在某个问题上具有某个描述答案的行,即在本列中具有相同的值。我能够确定具有此条件的所有行的索引值,但我找不到如何删除这些行或仅使用这些行创建新的df。
我有一个小数据框,比如说: 我想有一个列的滚动平均值,所以我这样做: 它的工作原理是,我有一个名为的新列,其中包含我期望它包含的内容,但我也会收到警告消息: 试图在数据帧切片的副本上设置值。尝试改用.loc[row\u indexer,col\u indexer]=value 请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/index
问题内容: 我在Databricks工作。 我有一个包含500行的数据框,我想创建两个包含100行的数据框,另一个包含剩余的400行。 我尝试了以下操作,但收到错误消息 问题答案: 最初,我误会了,并以为您想分割这些列。如果要选择行的子集,一种方法是使用创建索引列。从文档: 保证生成的ID是单调递增且唯一的,但不是连续的。 您可以使用此ID对数据框进行排序,并使用该ID对其子集进行排序,以确保准确
我有一个光谱仪的波长和吸光度输入文件。在这个文件中,数据被记录并作为数据帧的最后两列添加。柱需要指定测量特定吸光度(=数据)的波长。 我希望有一个数据框架,使我的分析更容易一点。诸如此类: 我知道,凭借我相当基本的python技能,我可能会将每个波长数据对存储为元组列表,并使一些复杂的排序魔法发生。但是自从我试图了解更多关于熊猫模块的信息以来,我一直在想我是否能更轻松地解决这个问题。然而,虽然我发
我有一个dataframe,。 我想选择中不在列表中的所有索引,
问题内容: 我正在寻找一种功能,可以更轻松地在两个帧之间切换。现在,每次需要在帧之间切换时,我都会通过以下代码进行操作: 我的目标是获得一个仅接受参数即可更改nav或content的函数,因为其余的基本相同。 我已经尝试过的是: 但这给我一个错误 SyntaxError:语法无效 问题答案: 编写方式是将CSS代码解析为Python代码。你不要那样 此功能适用于: 如果您只是尝试根据属性切换到框架