【问题标题】:How to access by 'region' from a dataset?如何从数据集中按“区域”访问?
【发布时间】:2020-03-12 12:08:28
【问题描述】:

我是 Pandas 的新手,需要您的帮助。我有一个包含国家和地区的数据集。我已经根据地区对它们进行了排序,但我希望能够仅按地区访问它们。我用过

ds2[ds2.Region=='Africa'] 

但它没有返回任何东西,而是给了我列的详细信息。请问有人可以帮忙吗?谢谢。

【问题讨论】:

  • 你能提供一个最小可重现的例子吗?您提供的代码似乎没有问题
  • 是你想要的ds2['Region'][ds2.Region=='Africa'] 吗?
  • 不,问题是我在另一个 DataFrame 上运行您的代码没有问题。所以问题很可能出在其他地方。要查看问题所在,我需要查看您正在使用的 DataFrame 的简化版本。
  • @NicolasGervais 我有一个包含国家和地区作为列的数据集,我已经能够根据地区对国家进行排序。但是,我希望能够从原始数据集中输出仅包含特定国家/地区的新数据集;例如“非洲”。希望他说的够清楚吗?

标签: python pandas dataset data-science


【解决方案1】:

您的区域列可能有空格和不同的大小写。

这应该可行:

ds2.loc[ds2['Region'].str.strip().str.lower() == 'Africa'] 

注意你也可以这样做

ds2.loc[ds2['Region'].str.contains('Africa',case=False,regex=False)==True]

【讨论】:

  • ds2.loc[ds2['Region'].str.contains('Africa',case=False,regex=False)==True] 为我工作。
  • 非常感谢。请您解释一下问题出在哪里以及为什么我以前的代码不起作用?再次感谢您。
  • 正如我上面所说的那样,Africa 不是区域名称并且它有附加字符,或者有空格,或者有不同的大小写,即AfRica 不等于@987654325 @ 或 africa' Africa ' 很难看到没有可重复的数据集,就像您的医生会告诉您疼痛是一种症状但不是根本原因一样,医生需要看您以做出正确的诊断并在同样,需要可重现的数据集来重现您的错误。
【解决方案2】:

这行代码完全正确,但在你的情况下尝试使用 pandas 查询方法,它将是 ds2.query('Region==Africa') 。确保您的条件参数('Africa') 在数据集中完全相同,它区分大小写,或者可能非洲不在数据集中。建议使用任何方式查询方法,特别是在有多个条件的情况下更灵活。 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-09
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多