如何根据其他列中的某些条件在数据框列中填充新值

时间:2019-12-22 15:34:17

标签: python pandas dataframe datetime if-statement

如何根据其他列中的某些条件在数据框中填充新值

例如我想在 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

'''

1 个答案:

答案 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']))