当前位置: 首页 > 面试题库 >

检查pandas的dataframe列中是否包含某些值

爱海
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'])

问题答案:

我认为str.contains如果需要行,其中column的值date包含string
07311954

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

或者,如果typedate列是string

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

如果要检查string 1954列中的最后4位数字date

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


 类似资料:
  • 问题内容: 我有这样的df: 以及物品清单: 我的目标是从中获取至少包含2个元素的所有行。 我想出了以下解决方案: 这给了我我想要的,但是就可伸缩性而言,它可能不是最佳的解决方案。是否有任何“向量化”解决方案?谢谢 问题答案: 我会建立一个Series列表,然后应用vectorized : 它给出了预期的结果:

  • 问题内容: 我有一个数据框,其中包含有关电影的信息。它有一个名为的列,其中包含它所属的流派列表。例如: 我想知道如何查询数据框,以便它返回属于某个类型的电影? 例如,可能会返回0或1。 我知道列表,可以做以下事情: 但是,在大熊猫中,我找不到类似的东西,我唯一知道的是,但它不适用于列表类型。 问题答案: 您可以使用create ,然后:

  • 给定一个包含可能分散在各处的NaN值的pandas数据frame: 问题:如何确定哪些列包含NaN值?特别是,我可以获得包含NANS的列名列表吗?

  • 问题内容: 在Python Pandas中,检查DataFrame是否具有一个(或多个)NaN值的最佳方法是什么? 我知道函数,但是这会为每个元素返回一个布尔值的DataFrame。此处的帖子也无法完全回答我的问题。 问题答案: jwilner的反应是现场的。我一直在探索是否有更快的选择,因为根据我的经验,求平面数组的总和(奇怪)比计数快。这段代码似乎更快: 速度稍慢,但当然还有其他信息-的数量。

  • 问题内容: 如何检查大pandas是否为空?就我而言,如果终端为空,我想在终端打印一些消息。 问题答案: 您可以使用该属性检查其是否为空: 资料来源:pandas文件