2024-05-05 05:30:23 发布
网友
是否有更复杂的方法来检查数据帧df是否包含两个名为Column 1和Column 2的列:
df
Column 1
Column 2
if numpy.all(map(lambda c: c in df.columns, ['Column 1', 'Columns 2'])): do_something()
我知道这是一个老帖子
从这个answer:
if set(['Column 1', 'Column 2']).issubset(df.columns): do_something()
或者更优雅一点:
if {'Column 1', 'Column 2'}.issubset(df.columns): do_something()
给定答案的一个问题(可能对OP有效)是,它测试数据框的所有列是否都在给定列表中,但不是给定列表的所有项都在数据框列中
我的解决办法是:
test = all([ i in df.columns for i in ['A', 'B'] ])
其中test是简单的True或False
test
True
False
您可以使用^{}:
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
如果需要检查至少一个值,请使用^{}
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
如果需要检查^{}值:
cols = ['A', 'B', 'C','D','E','F'] print (df.columns.isin(cols).all()) True cols = ['W', 'Z'] print (df.columns.isin(cols).all()) False
我知道这是一个老帖子
从这个answer:
或者更优雅一点:
给定答案的一个问题(可能对OP有效)是,它测试数据框的所有列是否都在给定列表中,但不是给定列表的所有项都在数据框列中
我的解决办法是:
test = all([ i in df.columns for i in ['A', 'B'] ])
其中
test
是简单的True
或False
您可以使用^{} :
如果需要检查至少一个值,请使用^{}
如果需要检查^{} 值:
相关问题 更多 >
编程相关推荐