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

检查某个值是否包含在熊猫的数据框列中[重复]

佴飞驰
2023-03-14

我试图检查python列中是否包含某个值。我正在使用df.date.isin(['07311954']),这无疑是一个很好的工具。问题是我有超过350K行,输出不会显示所有行,这样我就可以看到值是否实际包含。简单地说,我只想知道(Y/N)列中是否包含特定的值。我的代码如下:

import numpy as np
import pandas as pd
import glob


df = (pd.read_csv('/home/jayaramdas/anaconda3/Thesis/FEC_data/itpas2_data/itpas214.txt',\
    sep='|', header=None, low_memory=False, names=['1', '2', '3', '4', '5', '6', '7', \
    '8', '9', '10', '11', '12', '13', 'date', '15', '16', '17', '18', '19', '20', \
    '21', '22']))

df.date.isin(['07311954'])

共有3个答案

章宏峻
2023-03-14
匿名用户

您可以使用任何:

print any(df.column == 07311954)
True       #true if it contains the number, false otherwise

如果您想查看“07311954”在一列中出现的次数,可以使用:

df.column[df.column == 07311954].count()

司徒志强
2023-03-14

如果需要列date的值包含字符串07311954的行,我认为您需要str.contains

print df[df['date'].astype(str).str.contains('07311954')]

或者如果date列的typestring

print df[df['date'].str.contains('07311954')]

如果您想检查date列中的string1954的最后4位数字:

print df[df['date'].astype(str).str[-4:].str.contains('1954')]

样本:

print df['date']
0    8152007
1    9262007
2    7311954
3    2252011
4    2012011
5    2012011
6    2222011
7    2282011
Name: date, dtype: int64

print df['date'].astype(str).str[-4:].str.contains('1954')
0    False
1    False
2     True
3    False
4    False
5    False
6    False
7    False
Name: date, dtype: bool

print df[df['date'].astype(str).str[-4:].str.contains('1954')]
     cmte_id trans_typ entity_typ state  employer  occupation     date  \
2  C00119040       24K        CCM    MD       NaN         NaN  7311954   

   amount     fec_id    cand_id  
2    1000  C00140715  H2MD05155  
谭玉泽
2023-03-14

你可以简单地使用这个:

df.date.values中的“07311954”返回TrueFalse

下面是进一步的解释:

在pandas中,使用中的直接检查数据帧和序列(例如df中的val或序列中的val)将检查索引中是否包含val。

但是您仍然可以在中使用检查它们的值(而不是索引)!只需在df.col\u name.values中使用val,或在series.values中使用val。这样,您实际上是在用Numpy数组检查val

.isin(VAL)则相反,它检查数据帧/系列值是否在VAL中。此处必须设置VAL或类似列表。所以这不是解决这个问题的自然方式。

 类似资料:
  • 如果列表中的值存在于其中一个dataframe列中,我需要迭代列表并执行特定操作。我试着按照下面的方法做,但发现了下面的错误 '错误:#序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all() 所需输出:

  • 问题内容: 我想查看数据框内特定列中是否存在特定字符串。 我遇到了错误 ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 问题答案: 将返回大小为布尔值的指标向量 因此,您可以使用 或者,如果您不在乎有多少条记录与您的查询匹配

  • 问题内容: 我正在尝试检查python列中是否包含某个值。我正在使用,我毫不怀疑它是一个很好的工具。问题是我有超过350K的行,并且输出不会显示所有的行,因此我可以查看该值是否实际包含在内。简而言之,我只想知道(Y / N)列中是否包含特定值。我的代码如下: 问题答案: 我认为如果需要行,其中column的值包含string : 或者,如果的列是: 如果要检查 列中的最后4位数字: 样品:

  • 问题内容: 有没有一种方法可以检查Pandas DataFrame中是否存在列? 假设我有以下DataFrame: 我想计算 但是首先我要检查是否存在,如果不存在,我要计算。 问题答案: 这将起作用: 但是为了清楚起见,我可能将其写为:

  • 我有以下代码: 我要做的是检查文件是否在当前目录中。如果找不到,则创建该文件。 如果找到该文件,则在中下载spy ticker数据,并将该数据附加到中,并将其保存在csv文件中。 问题 我如何摆脱列,为什么会出现该列?

  • 使用pandas dataframe假设我有如下结构相似的数据帧: 我想要一个新的2列(Choise,Value),它满足“a_Cho”、“b_Cho”和“c_Cho”中所有值的以下条件 如果“a_Cho”=true,则选择“a_n”,值=a对应于“a_Cho”的值如果“a_Cho”=false,则移动到下一步 如果“b_Cho”=true,则选择“b_n”,值=b表示“b_Cho”的对应值,如果