检查pandas的dataframe列中是否包含某些值
我正在尝试检查python列中是否包含某个值。我正在使用df.date.isin(['07311954'])
,我毫不怀疑它是一个很好的工具。问题是我有超过350K的行,并且输出不会显示所有的行,因此我可以查看该值是否实际包含在内。简而言之,我只想知道(Y
/ N)列中是否包含特定值。我的代码如下:
import numpy as npimport 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')]
或者,如果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
以上是 检查pandas的dataframe列中是否包含某些值 的全部内容, 来源链接: utcz.com/qa/416792.html