pandas 基于另一列的字符串创建新列

ozxc1zmp  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(112)

我有一列关于视频游戏的类别。每行都有一个类别的组合取决于游戏类型。例如:单人游戏,多人游戏,蒸汽,PvP,跨平台...每个单元格可以有多个类别,用逗号分隔。我想根据类别列中是否有"单人游戏"、"多人游戏"或两者创建一个新列。
我被以下函数卡住了:

def categories(df):
    if df[df['Categories'].str.contains('Single-player')]:
        return 'Single-player'
    if df[df['Categories'].str.contains('Multi-player-player')]:
        return 'Multi-Player'
df['New_col'] = df.apply(conditions, axis =1)

我不知道如何创造两个类别都出现的条件
谢谢!

wfveoks0

wfveoks01#

您可以使用此函数来获得预期的结果:

def categories(row):
    if 'Single-player' in row['Categories'] and 'Multi-player' in row['Categories']:
        return 'Both'
    elif 'Single-player' in row['Categories']:
        return 'Single-player'
    elif 'Multi-player' in row['Categories']:
        return 'Multi-player'
    else:
        return 'Other'

df['New_col'] = df.apply(categories, axis=1)
    • 说明:**

如果需要检查多个条件,可以使用if语句来检查多个条件。其语法为:
两个条件都必须为真:AND运算符。

if condition1 and condition2:
    #execute this code

其中一个条件必须为真:OR运算符。

if condition1 or condition2:
    #execute this code

有关详细信息,请参阅:Check multiple conditions in if statement

相关问题