我有一个给定的数据框:
现在从数据帧中可以看出,玩家 x 输了 6 次,玩家 y 输了 9 次。我想制作一个数据框,其中包含玩家以及他们输了多少次。因此最终的数据框应该如下所示
我发现的一个选项是使用 dataframe.apply,其中我可以返回维持条件的行数。相同的代码是:
import pandas as pd
df=pd.read_csv('C:/Users/sadik/Desktop/Data.csv')
df = df.apply(lambda x : True
if x['Result'] == "Lost" else False, axis = 1)
num_rows = len(df[df == True].index)
print('Number of Rows in dataframe in which Condition is met: ',
num_rows )
这给了我输出
runfile('C:/Users/sadik/untitled0.py', wdir='C:/Users/sadik')
Number of Rows in dataframe in which Condition is met: 15
我的问题是如何使用相同的逻辑来按预期输出中所示的玩家姓名输出计数
最佳答案
您可以按名称
进行分组,然后agg
重新调整丢失
的总数:
out = df.groupby("Name").Result.agg(lambda s: s.eq("Lost").sum()).to_frame("Count")
我们最后将其转换为一个数据帧,其计数名为“Count”
,
获取
>>> out
Count
Name
x 6
y 9
关于python - 使用 df.apply 返回满足条件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67847244/