Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 传递列表喜欢。不再支持带有任何缺少标签的loc或[]_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

Python 传递列表喜欢。不再支持带有任何缺少标签的loc或[]

Python 传递列表喜欢。不再支持带有任何缺少标签的loc或[],python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我想用指定的列创建一个修改过的数据框。 我尝试了以下操作,但抛出错误“不再支持传递列表likes to.loc或[]以及任何缺少的标签” 谢谢列表中的某些列未包含在数据框中,如果您确实希望这样做,让我们尝试reindex tips_filtered = tips_df.reindex(columns=filtered_columns) 实际上,我也遇到了这个错误,上面的黑客修复了它,但我不明白为什么。。。我在我的个人电脑上尝试了一个类似的调用,而不是在我正在使用的笔记本的内核上,使用.loc[

我想用指定的列创建一个修改过的数据框。 我尝试了以下操作,但抛出错误“不再支持传递列表likes to.loc或[]以及任何缺少的标签”


谢谢

列表中的某些列未包含在数据框中,如果您确实希望这样做,让我们尝试
reindex

tips_filtered = tips_df.reindex(columns=filtered_columns)

实际上,我也遇到了这个错误,上面的黑客修复了它,但我不明白为什么。。。我在我的个人电脑上尝试了一个类似的调用,而不是在我正在使用的笔记本的内核上,使用.loc[]和列表格式的列名子集就可以了。我知道这不是问题的答案,但我对堆栈溢出还不熟悉,还不能发表评论,但希望澄清抛出此错误的原因?

看起来Pandas不赞成这种索引方法。根据他们的意见:

此行为已弃用,并将显示一条警告消息 到这一节。推荐的替代方法是使用.reindex()

使用新的,您可以使用以下方法筛选列:

tips\u filtered=tips\u df.reindex(columns=filtered\u columns)


注意:要重新索引行,可以使用
重新索引(index=…)
(详细信息)。

我遇到了相同的错误,缺少行索引标签而不是列
例如,我将有一个具有以下ID的产品数据集:['a'、'b'、'c'、'd']。我将这些产品存储在一个带有索引的数据框中
['a'、'b'、'c'、'd']

df=pd.DataFrame(['product a','product b','product c', 'product d'],index=['a','b','c','d'])
现在假设我有一个更新的产品索引:
行索引=['b'、'c'、'd'、'e']
其中“e”对应于一个新产品:“产品e”。请注意,“e”在我的原始索引中不存在

如果我试图将此更新的索引传递给我的df数据帧:
df.loc[row_index,:]

我将收到这个令人讨厌的错误消息:

KeyError:“不再支持将列表像.loc或[]传递给任何缺少的标签。缺少以下标签:索引(['e'],dtype='object')

为避免此错误,我需要将更新的索引与原始索引相交:

df.loc[df.index.intersection(row_indices),:]  

它成功了。所有的列都在数据框中。但是,为什么它会抛出这个错误?@swasthiknayak让我们做,
设置(过滤的列)。差异(设置(df.columns.tolist())
,然后检查其余的;t检查
df.columns
中是否有拼写错误或前导/尾随空格,如果需要,您可以
str.strip()
将其关闭。某些/任何列不在实际数据框架中。这不是问题的答案,应该在注释中。请删除它。您可以在50信誉度下进行注释。用户显然由于信誉度原因无法进行注释…我建议改为打开一个新问题,但这可能是错误的关闭为重复…我今天遇到了这个问题,你救了我的命。非常感谢@KuffnerThank-我需要一种快速方法来重新编制股票价格数据的指数,以便在非市场日有固定价格(只需使用固定价格和日期范围重新编制指数,没有问题),但我还需要指出哪些是市场日-我保存了我的原始索引,然后使用.loc,将原始索引设置为MarketDay=True-所有正常方法都不起作用-此方法是唯一起作用的方法。因此,我感谢您。
df.loc[df.index.intersection(row_indices),:]