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

如何根据列表选择数据帧的一部分?[复制]

劳夕
2023-03-14

我有以下数据框:

      import pandas as pd

      df = pd.DataFrame({'Name': ['MEXICO', 'CANADA', 'CANADA', 'PORTUGAL', 'ESPANHA', 
                                  'BRASIL', 'BRASIL', 'MEXICO'],                   
                         'Column_two': [1,2,3,4,5,6,7,8]                  
                         })

      print(df)

      # Output:

                  Name      Column_two
                 MEXICO        1
                 CANADA        2
                 CANADA        3
                PORTUGAL       4
                 ESPANHA       5
                  BRASIL       6
                  BRASIL       7
                  MEXICO       8

我有以下一些位于美国的城市列表:

      list_americ = ['MEXICO', 'CANADA', 'BRASIL']

我想在数据框中只保留列表\u americ中国家的“名称”。因此,我尝试执行以下代码:

     for correct_name in list_americ:
          df['Name'] = df['Name'].apply(lambda x: correct_name if correct_name == df['Name'] 
                       else x)

此代码产生以下错误:

      ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我希望输出为:

                  Name      Column_two
                 MEXICO        1
                 CANADA        2
                 CANADA        3
                  BRASIL       6
                  BRASIL       7
                  MEXICO       8

共有1个答案

龙成仁
2023-03-14

使用df。loc(位置):

df.loc[df['Name'].isin(list_americ)]
 类似资料:
  • 如何根据Pandas中某个列中的值从中选择行? 在SQL中,我将使用: 我试图查看熊猫的文档,但我没有立即找到答案。

  • 我试图查看熊猫的文档,但我没有立即找到答案。

  • 我正在使用它来自动化一个GWT应用程序。有一个包含以下列的表:checkbox,userID,Username,Fname,LName,email。 我得到的错误是:selenium.common.exceptions.invalidselectoreXception:消息:无效选择器:无法找到具有xpath表达式//tr[td[contains(text()='agency_group_0_ag

  • 问题内容: 对于的某些列,如果该列的80%是。 删除此类列的最简单代码是什么? 问题答案: 您可以使用与用于treshold,然后删除列用(因为删除列),还需要反转的条件-这样的手段删除所有列: 样品: 如果要通过最小值与参数一起很好地删除列,并且要删除列: 编辑:对于非布尔数据 列中的NaN条目总数必须少于条目总数的80%:

  • 问题内容: 我有一个名为@status的变量,该变量在此select语句之前设置: 我只想选择if列,否则我想为shipwith选择null。我该如何完成? 问题答案:

  • 我在Python中使用一个视频游戏的熊猫DataFrame,每个游戏都有一种类型。我正在尝试删除任何在DataFrame中出现次数少于一定次数的类型的视频游戏,但我不知道该怎么做。我确实发现了一个StackOverflow问题,这个问题似乎是相关的,但我根本无法破译这个解决方案(可能是因为我从未听说过R,而且我对函数编程的记忆充其量也很生疏)。 帮助?