IF 嵌套 IF 熊猫

问题描述 投票:0回答:1

大家好,我将使用 IF 语句插入并填充列“Mark”信息数据框,但在行 Duration(Mins) =“10.0”中结果为 None,dtypes 列 Duration(Mins) 为 float64,谢谢您的回答

import pandas as pd

# Define data as a dictionary
data = {
    'Alarm Name': ['Cell Down', '4G Down', '3G Down', '2G Down', 'Cell Unavailable', 'Partial Down', 'Signalling Down'],
    'Duration(Mins)': [3, 5.9, 10.1, 2.9, -12, 6, 10]
}

#Function
def mark(row):
    if row['Duration(Mins)'] >= 0:
        if row['Duration(Mins)'] < 3:
            return '0-3 Mins'
        elif row['Duration(Mins)'] < 6:
            return '3-6 Mins'
        elif row['Duration(Mins)'] < 10:
            return '6-10 Mins'
        elif row['Duration(Mins)'] > 10:
            return '>10 Mins'
    else:
        return 'Open'

df['Mark'] = df.apply(mark, axis=1)```
pandas if-statement
1个回答
0
投票

这能解决您的问题吗?你错过了 if 上的 = 表示 6-10 分钟。

def mark(row):
if row['Duration(Mins)'] >= 0:
    if row['Duration(Mins)'] < 3:
        return '0-3 Mins'
    elif row['Duration(Mins)'] < 6:
        return '3-6 Mins'
    elif row['Duration(Mins)'] <= 10:
        return '6-10 Mins'
    elif row['Duration(Mins)'] > 10:
        return '>10 Mins'
else:
    return 'Open'

df['Mark'] = df.apply(mark, axis=1)```

在您的版本中,未捕获持续时间恰好为 10 的情况。

© www.soinside.com 2019 - 2024. All rights reserved.