我做了一个这样的数据帧
data = [['Football', 'x'], ['Football', 'y'], ['Football', 'z'], ['Volleyball', 'a' ], ['Volleyball', 'x'], ['Volleyball', 'y'], ['ruggby', 'd'], ['ruggby', 'e'], ['ruggby', 'f'] ]
df = pd.DataFrame(data, columns = ['Name', 'Country'])
我做了如下不同的数据帧
sports = [v for k, v in df.groupby('Name')]
然后我从下面的代码中检查普通国家
numbers=[]
for x in range(len(sports)):
for y in range(len(sports)):
try:
common_sports=sports[x]['Country'].isin(sports[y]['Country']).value_counts()
numbers.append(common_sports[True])
except:
numbers.append(float('inf'))
print(numbers)
有没有一个好的方法可以在没有for循环的情况下编写最后一组代码?所以我会得到同样的结果
结果将是
[3, 2, inf, 2, 3, inf, inf, inf, 3]
如果我理解正确,您需要对“Name”列和“Country”列之间的公共值求和:
印刷品:
相关问题 更多 >
编程相关推荐