基于相同条件在数据帧中创建多个列

2024-04-26 12:31:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,我尝试在一次基于一个if语句条件的数据帧中创建多个列。我创建了一个类似下面的define函数,为每个if语句返回2个值,第二个if语句嵌套在第一个if语句中,然后将该函数应用于dataframe以创建4个新列。显然,这是不正确的,希望得到一些帮助或其他选择,以达到同样的结果。谢谢!你知道吗

def group(df):
  if df['a'] == 'one':
    low1 = 10
    high1 = 60

    if df['b'] == 'two':
    low2 = 20
    high2 = 70

    return low1, high1, low2, high2

df['low1', 'high1', 'low2', 'high2'] = df.apply(group, axis=1)

结果就是这样一个数据帧。。。你知道吗

 a   b    low1   high1   low2  high2
one        10     60     
one  two   10     60       20    70

Tags: 数据函数dfifgroup语句条件one
1条回答
网友
1楼 · 发布于 2024-04-26 12:31:52

正如@Lucefer在评论中提到的,如果第一个条件为真,它将永远不会达到第二个条件。因此,交换if语句可能对您有用。你知道吗

def group(df):
     if df['a'] == 'one' & df['b'] == 'two':
        low2 = 20
        high2 = 70
        return low2, high2

    if df['a'] == 'one':
        low1 = 10
        high1 = 60
        return low1, high1

相关问题 更多 >