python - 检查是否存在多列

标签 python pandas dataframe

是否有更复杂的方法来检查数据帧 df 是否包含名为 Column 1Column 2 的 2 列:

if numpy.all(map(lambda c: c in df.columns, ['Column 1', 'Columns 2'])):
    do_something()

最佳答案

您可以使用 Index.isin :

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  C  D  E  F
0  1  4  7  1  5  7
1  2  5  8  3  3  4
2  3  6  9  5  6  3

如果需要检查至少一个值使用any

cols = ['A', 'B']
print (df.columns.isin(cols).any())
True

cols = ['W', 'B']
print (df.columns.isin(cols).any())
True

cols = ['W', 'Z']
print (df.columns.isin(cols).any())
False

如需查询all值(value)观:

cols = ['A', 'B', 'C','D','E','F']
print (df.columns.isin(cols).all())
True

cols = ['W', 'Z']
print (df.columns.isin(cols).all())
False

关于python - 检查是否存在多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38070072/

相关文章:

python - 为Python安装unicode csv?

python - 根据搜索的字符串是否存在,用 1 或 0 查找列

r - 更新 Pandas 后无法导入 rpy2.robjects "ValueError: The system "%s"不受支持。"

python - HDFStore.select 中的迭代器和 block 大小 : "Memory error"

dataframe - 参数错误: columns argument must be a vector of AbstractVector objects

Python:将 'list' 的 url 发送到 scrapy 蜘蛛进行抓取时出现问题

python - 如何在使用 R 按 ID 分组的不同列中找到另一个日期之后的最近日期?

python - 这个方法对这个列表做了什么?

python - 根据索引值和条件语句将行值相加

python - 数据框 bool 过滤