2024-05-23 22:45:41 发布
网友
我有一个有3列的数据框-“体育”“年龄”“姓名”
我有一份不同运动项目的清单,声明如下:
sports = ['tennis','cricket','swimming']
我想看看这三个项目是否都在体育专栏里。目前,我有这个:
因此,如果列表中的所有体育项目都不在我想打印的列中,那么我当前代码的问题是,sport列的元素比sport列表中的元素多很多,所以给了我一个错误。在
尝试使用isin(sports).all()
isin(sports).all()
例如:
import pandas as pd sports = ['tennis','cricket','swimming'] df = pd.DataFrame({'sport': ['tennis','cricket','swimming']}) print(df["sport"].isin(sports).all())
我认为需要比较sets:
set
sports = ['tennis','cricket','swimming'] df = pd.DataFrame({'sport': ['tennis','cricket']}) print (df) sport 0 tennis 1 cricket print(set(df['sport']) >= set(sports)) False df = pd.DataFrame({'sport': ['tennis','cricket','swimming']}) print (df) sport 0 tennis 1 cricket 2 swimming print(set(df['sport']) >= set(sports)) True df = pd.DataFrame({'sport': ['tennis','cricket','swimming', 'another']}) print (df) sport 0 tennis 1 cricket 2 swimming 3 another print(set(df['sport']) >= set(sports)) True
您可以使用set.intersection:
set.intersection
if not set(df['sport']).intersection(set(sports)): print('no, the sports arent in the column')
更有效地,您可以使用set.issubset:
set.issubset
尝试使用
isin(sports).all()
例如:
我认为需要比较
set
s:您可以使用
set.intersection
:更有效地,您可以使用
^{pr2}$set.issubset
:相关问题 更多 >
编程相关推荐