我想使用列表理解中的if else条件在已经存在的字段的帮助下在现有数据框中创建一个新字段,并使用条件填充未命中的
想用5填充丢失的数据,并用(df_delta ['model_trigger']-1)休息
df_delta['time_periods_st'] = [(model_trigger - 1) if model_trigger != "np.NaN" else 5 for model_trigger in df_delta['model_trigger']]
具有上述名称的新字段,并符合条件。
答案 0 :(得分:0)
使用np.where
和isnull
检查NaN
例如:
import pandas as pd
import numpy as np
df_delta = pd.DataFrame({"model_trigger": [np.NaN, 10]})
df_delta['time_periods_st'] = np.where(df_delta['model_trigger'].isnull(), 5, df_delta['model_trigger'] - 1)
print(df_delta)
输出:
model_trigger time_periods_st
0 NaN 5.0
1 10.0 9.0