通过比较熊猫列的日期列表来创建新列

时间:2020-01-23 06:21:42

标签: pandas list date calendar compare

我有一个包含3列的数据框:周,月和计划日期,其中周的范围是1到4,月是从一月到十二月的月份列表,计划日期是一年中的日期列表。 / p>

它看起来像这样:

week, month, planneddates
1, [1,2,3], [ ... ] 
4, [7,9], [ ...]

完整数据样本:

week,            month,                planneddates

1, ['1', '3', '5', '7', '9', 'nov'], [datetime.date(2019, 4, 1), datetime.date(2019, 4, 8), datetime.date(2019, 4, 15), datetime.date(2019, 4, 22), datetime.date(2019, 4, 29), datetime.date(2019, 5, 6), datetime.date(2019, 5, 13), datetime.date(2019, 5, 20), datetime.date(2019, 5, 27), datetime.date(2019, 6, 3), datetime.date(2019, 6, 10), datetime.date(2019, 6, 17), datetime.date(2019, 6, 24), datetime.date(2019, 7, 1), datetime.date(2019, 7, 8), datetime.date(2019, 7, 15), datetime.date(2019, 7, 22), datetime.date(2019, 7, 29), datetime.date(2019, 8, 5), datetime.date(2019, 8, 12), datetime.date(2019, 8, 19), datetime.date(2019, 8, 26), datetime.date(2019, 9, 2), datetime.date(2019, 9, 9), datetime.date(2019, 9, 16), datetime.date(2019, 9, 23), datetime.date(2019, 9, 30), datetime.date(2019, 10, 7), datetime.date(2019, 10, 14), datetime.date(2019, 10, 21), datetime.date(2019, 10, 28), datetime.date(2019, 11, 4), datetime.date(2019, 11, 11), datetime.date(2019, 11, 18), datetime.date(2019, 11, 25), datetime.date(2019, 12, 2), datetime.date(2019, 12, 9), datetime.date(2019, 12, 16), datetime.date(2019, 12, 23), datetime.date(2019, 12, 30), datetime.date(2020, 1, 6), datetime.date(2020, 1, 13), datetime.date(2020, 1, 20), datetime.date(2020, 1, 27), datetime.date(2020, 2, 3), datetime.date(2020, 2, 10), datetime.date(2020, 2, 17), datetime.date(2020, 2, 24), datetime.date(2020, 3, 2), datetime.date(2020, 3, 9), datetime.date(2020, 3, 16), datetime.date(2020, 3, 23), datetime.date(2020, 3, 30)]
4, ['dec', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'oct', 'nov'], [datetime.date(2019, 4, 1), datetime.date(2019, 4, 8), datetime.date(2019, 4, 15), datetime.date(2019, 4, 22), datetime.date(2019, 4, 29), datetime.date(2019, 5, 6), datetime.date(2019, 5, 13), datetime.date(2019, 5, 20), datetime.date(2019, 5, 27), datetime.date(2019, 6, 3), datetime.date(2019, 6, 10), datetime.date(2019, 6, 17), datetime.date(2019, 6, 24), datetime.date(2019, 7, 1), datetime.date(2019, 7, 8), datetime.date(2019, 7, 15), datetime.date(2019, 7, 22), datetime.date(2019, 7, 29), datetime.date(2019, 8, 5), datetime.date(2019, 8, 12), datetime.date(2019, 8, 19), datetime.date(2019, 8, 26), datetime.date(2019, 9, 2), datetime.date(2019, 9, 9), datetime.date(2019, 9, 16), datetime.date(2019, 9, 23), datetime.date(2019, 9, 30), datetime.date(2019, 10, 7), datetime.date(2019, 10, 14), datetime.date(2019, 10, 21), datetime.date(2019, 10, 28), datetime.date(2019, 11, 4), datetime.date(2019, 11, 11), datetime.date(2019, 11, 18), datetime.date(2019, 11, 25), datetime.date(2019, 12, 2), datetime.date(2019, 12, 9), datetime.date(2019, 12, 16), datetime.date(2019, 12, 23), datetime.date(2019, 12, 30), datetime.date(2020, 1, 6), datetime.date(2020, 1, 13), datetime.date(2020, 1, 20), datetime.date(2020, 1, 27), datetime.date(2020, 2, 3), 
datetime.date(2020, 2, 10), datetime.date(2020, 2, 17), datetime.date(2020, 2, 24), datetime.date(2020, 3, 2), datetime.date(2020, 3, 9), 
datetime.date(2020, 3, 16), datetime.date(2020, 3, 23), datetime.date(2020, 3, 30)]

我要从计划日期创建一个新列,称为“新列”。

“新列”应仅从那些计划日期列表中选择与特定星期和月份相对应的那些日期。

所需的输出结构:

week, month, new column
1, [1,2,3], [ filtered ... ] 
4, [7,9], [ filtered ... ]

与样本数据对应的所需输出:

week,        month,                          new column
1   ['1', '3', '5', '7', '9', 'nov']    [datetime.date(2019, 5, 6), datetime.date(2019, 7, 1), datetime.date(2019, 9, 2), datetime.date(2019, 11, 4), datetime.date(2020, 1, 6), datetime.date(2020, 3, 2)]
4   ['dec', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'oct', 'nov']  [datetime.date(2019, 4, 22), datetime.date(2019, 5, 27), datetime.date(2019, 6, 24), datetime.date(2019, 7, 22),  datetime.date(2019, 8, 26), datetime.date(2019, 9, 23), datetime.date(2019, 10, 28), datetime.date(2019, 11, 25) datetime.date(2019, 12, 23), datetime.date(2020, 1, 27), datetime.date(2020, 2, 24),  datetime.date(2020, 3, 23)]

0 个答案:

没有答案