用对应于下一列的颜色填充 nan 值

Fill nan values with color that corresponds to next column

我想用对应于该条件的颜色类型填充 nan 值。例如,如果它是棕色的并且条件具有 nan 值,则 nan 应该填充 2.0dataset image

Blockquote

condition   color_type  length(m)   height(cm)  X1  X2  duration
0   2.0 Brown Tabby 0.80    7.78    13  9   73
1   1.0 White   0.72    14.19   13  9   1862
2   NaN Brown   0.15    40.90   15  4   752
3   1.0 White   0.62    17.82   0   1   755
4   2.0 Black   0.50    11.06   18  4   52

您可以使用布尔掩码:

cond = df['color_type'] == 'Brown'
df.loc[cond, "condition"] = df.loc[cond, "condition"].fillna(2.0)

对于多种颜色,您可以这样做:

cond = df['color_type'].isin(your_list_of_colors)

你可以这样做 df["条件"]=df["条件"].fillna(df.groupby("color_type")["条件"].transform(lambda x:x.mode()[0 ])) 这应该可以解决您的问题