将列中的日期与其他列的标题进行比较,并根据Python中的比较生成一个dummy



我有一个包含10列的数据框架。第一列包含一些日期。其他9列的标题是其他一些日期。这9列的值都预先设置为0。

我想比较第一列中的日期值与其他9列的每个标题的值,如果满足某个条件,则将值从0更改为1。例如,如果第一列中的日期在每个标题日期之前的5年期间内,则将值从0更改为1。示例如下:

开始dataframe:

<表类>日期04 - 2月- 9431 - 1月- 9619日- 8月- 9718-Apr-01tbody><<tr>07/26/90000005/08/95000003/10/980000

好吧,让我们开始吧!

1。首先,您需要转换"列名"。(header)转换为日期格式(别名时间戳),如下所示:

df.columns = df.columns[:1].tolist() + pd.to_datetime(df.columns[1:]).tolist()

1.1然后,您必须转换列"日期"。日期格式too:

df.date = pd.to_datetime(df.date)

2。现在我们可以使用for循环进行第12次比较(列43行*),同时在匹配条件时相应地更新单元格值:

for i in df.columns[1:]:
for j in range(len(df.date)):
if df.date[j] < i < (df.date[j] + pd.offsets.DateOffset(years=5)):
df.at[j, i] = 1

3。输出:

<表类>指数日期1994-02-04就是1996-01-31就是1997-08-19就是2001-04-18就是tbody><<tr>01990-07-26就是100011995-05-08就是011021998-03-10就是0001

最新更新