检查pandas [duplicate]中的dataframe列中是否包含某个值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查pandas [duplicate]中的dataframe列中是否包含某个值相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我试图检查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
,如果你需要列date
的值包含字符串07311954
的行:
print df[df['date'].astype(str).str.contains('07311954')]
或者,如果type
列的date
是string
:
print df[df['date'].str.contains('07311954')]
如果您想在string
列中查看1954
date
的最后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
你可以简单地使用这个:
返回'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
。这样,你实际上是用Numpy数组检查val
。
而.isin(vals)
是另一种方式,它检查DataFrame / Series值是否在vals
中。这里vals
必须设置或列表。所以这不是解决问题的自然方式。
你可以使用any
:
print any(df.column == 07311954)
True #true if it contains the number, false otherwise
如果您想要查看列中出现“07311954”的次数,您可以使用:
df.column[df.column == 07311954].count()
以上是关于检查pandas [duplicate]中的dataframe列中是否包含某个值的主要内容,如果未能解决你的问题,请参考以下文章
使用pandas创建稀疏矩阵,并使用来自.dat文件的其他两列的索引[x,y]的.dat文件的一列中的值填充它
Pandas Dataframe 中的索引行不在索引列表中(Python)[重复]