【问题标题】:Select rows from DataFrame based on value from one of the column根据其中一列的值从 DataFrame 中选择行
【发布时间】:2018-04-15 12:54:50
【问题描述】:

DataFrame named "result"

**我正在尝试从 DataFrame(您在所附图片中看到的名为“result”)中获取带有 values == 0 的行。 类似这样的 SQL 查询将如下所示: SELECT * FROM RESULT WHERE column_name 等于 some_value 我的 DataFrame 有 2 列。第一个是我认为命名为'Index',第二个是命名为'0'(默认情况下名称 - 无需更改)

因为第 2 列是二进制:基于餐厅评论(第 1 列)是正面还是负面(1 或 0)。我只想获取行(基于负面评论的两列)。 当我尝试代码时: df.loc[df['column_name'].isin(some_values)] 或者在我的情况下 result.loc[result['0'].isin(0)]

我收到错误:KeyError: '0'

有人可以帮忙吗? **

【问题讨论】:

  • 检查result.columns 的输出:您应该能够看到0 列的列名是int,还是str。然后,如果是str,则可以使用result.loc[result['0'] == 0 ];如果是int,则可以使用result.loc[result[0] == 0 ]。如果你想使用.isin,你需要传递一个列表(.isin([0])

标签: python pandas dataframe where keyerror


【解决方案1】:

如果要选择列'0'的值为0的行,应该很简单:

result[result[0] == 0]

但是,正如sacul 所指出的,您应该检查列名的类型是“str”还是“int”。

【讨论】:

  • 代码 sn-p : result.loc[result[0] == 0 ] 运行良好。所以这个名字毕竟有一个 str 。做得好!我感谢一切!
猜你喜欢
  • 2017-01-14
  • 2013-06-08
相关资源
最近更新 更多