我试图检查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'])
匿名用户
您可以使用任何:
print any(df.column == 07311954)
True #true if it contains the number, false otherwise
如果您想查看“07311954”在一列中出现的次数,可以使用:
df.column[df.column == 07311954].count()
如果需要列date
的值包含字符串07311954
的行,我认为您需要str.contains
:
print df[df['date'].astype(str).str.contains('07311954')]
或者如果date
列的type
为string
:
print df[df['date'].str.contains('07311954')]
如果您想检查date
列中的string
1954
的最后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
你可以简单地使用这个:
df.date.values中的“07311954”返回True
或False
下面是进一步的解释:
在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位数字: 样品:
我有以下代码: 我要做的是检查文件是否在当前目录中。如果找不到,则创建该文件。 如果找到该文件,则在中下载spy ticker数据,并将该数据附加到中,并将其保存在csv文件中。 问题 我如何摆脱列,为什么会出现该列?
问题内容: 有没有一种方法可以检查Pandas DataFrame中是否存在列? 假设我有以下DataFrame: 我想计算 但是首先我要检查是否存在,如果不存在,我要计算。 问题答案: 这将起作用: 但是为了清楚起见,我可能将其写为:
使用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”的对应值,如果