从熊猫数据框中提取在特定列中具有特定值的所有行

Posted

技术标签:

【中文标题】从熊猫数据框中提取在特定列中具有特定值的所有行【英文标题】:Extracting all rows from pandas Dataframe that have certain value in a specific column 【发布时间】:2013-06-29 17:42:16 【问题描述】:

我对 Python/Pandas 比较陌生,并且正在努力从 pd.Dataframe 中提取正确的数据。我实际上拥有的是一个包含 3 列的数据框:

data =

Position Letter Value
1        a      TRUE
2        f      FALSE
3        c      TRUE
4        d      TRUE
5        k      FALSE

我想要做的是将所有 TRUE 行放入一个新的 Dataframe 中,这样答案就是:

answer = 

Position Letter Value
1        a      TRUE
3        c      TRUE
4        d      TRUE

我知道您可以使用

访问特定列
data['Value']

但是如何提取所有 TRUE 行?

感谢您的帮助和建议,

亚历克斯

【问题讨论】:

How to filter the DataFrame rows of pandas by "within"/"in"? 的可能重复项 【参考方案1】:

您可以将您的值包装在一个列表中并执行以下操作:

new_df = df.loc[df['yourColumnName'].isin(['your', 'list', 'items'])]

这将返回一个新的数据框,其中包含 您的列表项 与 df 中的 您的列名 匹配的行。

【讨论】:

【参考方案2】:

您可以测试哪些值是 True:

In [11]: data['Value'] == True
Out[11]:
0     True
1    False
2     True
3     True
4    False
Name: Value, dtype: bool

然后使用花哨的索引来提取这些行:

In [12]: data[data['Value'] == True]
Out[12]:
   Position Letter Value
0         1      a  True
2         3      c  True
3         4      d  True

*注意:如果值实际上是字符串 'TRUE''FALSE'(它们可能不应该是!)然后使用:

data['Value'] == 'TRUE'

【讨论】:

以上是关于从熊猫数据框中提取在特定列中具有特定值的所有行的主要内容,如果未能解决你的问题,请参考以下文章

如何从包含特定列中特定字符串的熊猫数据框中删除行? [复制]

如何使用正则表达式从熊猫数据框中的一行中的字符串中提取所有特定值?

从熊猫数据框中提取特定信息

根据列值从熊猫数据框中提取行

从 pyspark 数据框中的列中提取特定字符串

删除熊猫数据框中具有特定值的行[重复]