【问题标题】:KeyError: "['China'] not in index"KeyError:“['China'] 不在索引中”
【发布时间】:2021-08-23 01:21:05
【问题描述】:

我正在尝试选择中国国籍的游客,这是我的代码sn-p-

import pandas as pd 

China = ses[(ses["S1Country"] == 1)]
List_China = China[['Case','S1Country']]
List_China

This is what i put before the error 

我在这里尝试选择某些数据——人们使用的大多数来源,执行它的代码 sn-p——

import pandas as pd 

Ranking1 = ses[(ses["Q7Infor1"] == 1)]
List_Ranking1 = Ranking1[['China','Q7Infor1']]
List_Ranking1

然后我写了这段代码,它报告给我 'KeyError: "['China'] not in index'

我该如何解决? 感谢您的入住!

数据样本:

【问题讨论】:

  • 你能提供你的数据框样本吗?你的行和列是什么样的?
  • 请提供一个可重现的最小示例,如果没有示例数据框,您希望我们如何解决。
  • 它不起作用,.. 谢谢!!

标签: python pandas keyerror


【解决方案1】:

假设您尝试通过值China 过滤列Q7Infor1,那么您可以使用df[df['col'] == value]

因此,您的原始代码:

List_Ranking1 = Ranking1[['China','Q7Infor1']]

变成这样:

List_Ranking1 = Ranking1[Ranking1['Q7Infor1'] == 'China']

查看this answer,了解按行值过滤列的不同方法。


更新了 OP 的数据集

'China' 不是Q7Infor1 列中的有效值。所以假设China=1,那么我们可以按值1过滤:

China = 1
List_Ranking1 = Ranking1[Ranking1['Q7Infor1'] == China]

计算行数:

print(len(List_Ranking1))

【讨论】:

  • 嗨!我想做的是从中国数据中获取数据......就像我从案例中选择了中国数据,我试图通过再次查找来自中国的数据来对利益进行排名,但它似乎不起作用...
  • 我明白了,您可以编辑您的答案并提供一些示例数据吗?
  • 我可以附加文件吗?
  • 用您的数据集更新答案
  • 但我想知道它出现排名第一的次数...
猜你喜欢
  • 2018-05-16
  • 2020-02-03
  • 2017-11-04
  • 2016-11-22
  • 2018-04-30
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多