如何根据其他列中的某些条件在数据框中填充新值
例如我想在 y 列中将时间设为11:30的行在回归列中填充为1,而将时间为11:25的日期填充为回归列中的值为2。 / p>
该怎么做?
input_df["ds"]
列的类型为pandas.core.series.Series
input_df
ds y regressor
0 2019-10-04 11:30:00 a 0
1 2019-10-04 11:35:00 b 0
2 2019-10-04 11:40:00 c 0
3 2019-10-04 11:25:00 d 0
4 2019-10-04 11:50:00 e 0
.
.
.
n 2019-14-04 11:50:00 f 0
output_df
ds y regressor
0 2019-10-04 11:30:00 a 1
1 2019-10-04 11:35:00 b 0
2 2019-10-04 11:40:00 c 0
3 2019-10-04 11:25:00 d 2
4 2019-10-04 11:50:00 e 0
.
.
.
n 2019-14-04 11:50:00 f 0
'''
答案 0 :(得分:2)
您应该使用嵌套的np.where
充当if-else函数:
input_df['regressor'] = np.where(input_df['ds'].dt.time=='11:30:00',
1,
np.where(input_df['ds'].dt.time=='11:25:00',
2,
input_df['regressor']))