【发布时间】:2023-01-13 00:01:44
【问题描述】:
我有以下数据框:
df=
datetime col1 col2
0 2023-01-01 12:00:00 100 200
1 2023-01-02 12:00:00 120 400
2 2023-01-03 12:00:00 140 500
3 2023-01-04 12:00:00 160 700
4 2023-01-05 12:00:00 200 300
5 2023-01-06 12:00:00 430 200
6 2023-01-07 12:00:00 890 100
我有以下列表:
dates = [2023-01-01, 2023-01-03, 2023-01-07]
我想创建一个新列并用与df['datetime'] 的日期部分相同的列表项填充它。
使用下面的代码,我可以将列表的元素与df['datetime'] 中的元素进行比较。
import numpy as np
np.isin(dates, pd.DatetimeIndex(df['datetime']).date)
我试图实现以下代码,但由于大小不同,它无法正常工作:
np.where(np.isin(dates, pd.DatetimeIndex(df['datetime']).date),df['col3']==1,df['col3']==0)
输出应如下所示:
df=
datetime col1 col2 col3
0 2023-01-01 12:00:00 100 200 1
1 2023-01-02 12:00:00 120 400 0
2 2023-01-03 12:00:00 140 500 1
3 2023-01-04 12:00:00 160 700 0
4 2023-01-05 12:00:00 200 300 0
5 2023-01-06 12:00:00 430 200 0
6 2023-01-07 12:00:00 890 100 1
【问题讨论】:
标签: python pandas dataframe numpy