如何使用 Pandas 查找多列的行值

How to find row value for multiple columns using Pandas

我有以下数据集:

我想查找 PUBG MOBILE 游戏的平均用户评分和用户评分计数。

我尝试了以下行,但它根本不起作用:

df.loc[df['Name']['Average.User.Rating']['User.Rating.Count'] == 'PUBG MOBILE']

我还会找到平均用户评分≥ 4.5 且用户评分数≥ 300000 的策略游戏的名称,但我不知道应用它们的概念。

新请求:我将使用 Price 变量在名为 FREE 的数据集中创建一个新列。如果游戏是免费的,FREE 变量的值应该是 True,如果游戏不是免费的,则应该是 False。

你可以这样做:

 df.query('Name == "PUBG MOBILE"')[['Average.User.Rating','User.Rating.Count']]

对于你的第二个请求,你可以试试这个:

df
         ID     Name  Average.User.Rating  User.Rating.Count
0  23223355   Sudoku                  4.5             300000
1  15115555  Reversi                  3.5             285662                


df['Name'][(df['Average.User.Rating'] >= 4.5) & (df['User.Rating.Count'] >= 300000)]

0    Sudoku

我创建了一个示例数据来仅应用您想要的输出,但如 Onyambu 的评论所述,共享一个可重现的示例是必不可少的:

{'ID': {0: 23223355, 1: 15115555}, 'Name': {0: 'Sudoku', 1: 'Reversi'},
 'Average.User.Rating': {0: 4.5, 1: 3.5}, 'User.Rating.Count': {0: 300000, 1: 285662}}

根据 OP 的新要求更新了答案

df['FREE'] = df.apply(lambda x: 'Not Free' if x['Price'] else 'Free', axis = 1)
df

         ID     Name  Average.User.Rating  User.Rating.Count  Price      FREE
0  23223355   Sudoku                  4.5             300000   0.00      Free
1  15115555  Reversi                  3.5             285662   1.25  Not Free