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

您所在的位置:网站首页 dataframe修改某个值 检查pandas中的dataframe列中是否包含某个值

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

2023-03-25 11:29| 来源: 网络整理| 查看: 265

我试图检查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'])

YaOzI.. 26

你可以简单地使用这个:

'07311954' in df.date.values返回True或False

这是进一步的解释:

在pandas中,in直接使用DataFrame和Series(例如val in df或val in series)检查是否val包含在索引中.

但是你仍然可以使用in检查它们的值(而不是索引)!只是使用val in df.col_name.values 或val in series.values.通过这种方式,您实际上正在val使用Numpy数组进行检查.

并且.isin(vals)是周围的其他方法,它会检查数据帧/系列值是否是在vals.这里vals必须设置或列表.所以这不是解决问题的自然方式.

1> YaOzI..:

你可以简单地使用这个:

'07311954' in df.date.values返回True或False

这是进一步的解释:

在pandas中,in直接使用DataFrame和Series(例如val in df或val in series)检查是否val包含在索引中.

但是你仍然可以使用in检查它们的值(而不是索引)!只是使用val in df.col_name.values 或val in series.values.通过这种方式,您实际上正在val使用Numpy数组进行检查.

并且.isin(vals)是周围的其他方法,它会检查数据帧/系列值是否是在vals.这里vals必须设置或列表.所以这不是解决问题的自然方式.

2> Deusdeorum..:

你可以使用any:

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

如果您想要查看列中出现"07311954"的次数,您可以使用:

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

3> jezrael..:

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

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

或者,如果type的date列是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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3