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

如何根据列值从数据帧中选择行?

甄正信
2023-03-14
sql prettyprint-override">SELECT *
FROM table
WHERE colume_name = some_value

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

共有1个答案

张银龙
2023-03-14

若要选择列值等于标量some_value的行,请使用==:

df.loc[df['column_name'] == some_value]

若要选择列值在可迭代some_values中的行,请使用isin:

df.loc[df['column_name'].isin(some_values)]

使用&组合多个条件:

df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
df['column_name'] >= A & df['column_name'] <= B
df['column_name'] >= (A & df['column_name']) <= B
df.loc[df['column_name'] != some_value]
df.loc[~df['column_name'].isin(some_values)]

例如,

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
#      A      B  C   D
# 0  foo    one  0   0
# 1  bar    one  1   2
# 2  foo    two  2   4
# 3  bar  three  3   6
# 4  foo    two  4   8
# 5  bar    two  5  10
# 6  foo    one  6  12
# 7  foo  three  7  14

print(df.loc[df['A'] == 'foo'])

收益率

     A      B  C   D
0  foo    one  0   0
2  foo    two  2   4
4  foo    two  4   8
6  foo    one  6  12
7  foo  three  7  14

如果您有多个要包含的值,请将它们放入列表中(或者更一般地,任何可迭代的值),并使用isin:

print(df.loc[df['B'].isin(['one','three'])])
     A      B  C   D
0  foo    one  0   0
1  bar    one  1   2
3  bar  three  3   6
6  foo    one  6  12
7  foo  three  7  14
df = df.set_index(['B'])
print(df.loc['one'])
       A  C   D
B              
one  foo  0   0
one  bar  1   2
one  foo  6  12
df.loc[df.index.isin(['one','two'])]
       A  C   D
B              
one  foo  0   0
one  bar  1   2
two  foo  2   4
two  foo  4   8
two  bar  5  10
one  foo  6  12
 类似资料:
  • 如何根据Pandas中某个列中的值从中选择行? 在SQL中,我将使用: 我试图查看熊猫的文档,但我没有立即找到答案。

  • 这不是一个重复的问题,但类似于 根据pandas中列中的值从数据帧中选择行

  • 问题内容: 如何DataFrame基于Python Pandas中某些列的值从中选择行? 在SQL中,我将使用: 问题答案: 要选择列值等于标量的行,请使用: 要选择列值可迭代的行,请使用: 结合以下条件: 注意括号。由于Python的运算符优先级规则,绑定比和更紧密。因此,最后一个示例中的括号是必需的。没有括号 被解析为 这导致一个系列的真值是模棱两可的错误。 要选择列值不相等的行 ,请使用:

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

  • 我有以下数据框: 我有以下一些位于美国的城市列表: 我想在数据框中只保留列表\u americ中国家的“名称”。因此,我尝试执行以下代码: 此代码产生以下错误: 我希望输出为:

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