大家好,我将使用 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)```
这能解决您的问题吗?你错过了 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 的情况。