我有一个 Dataframe ,其中包含一个列ABDAT,该列包含一个列表。ABDAT中的元素数量是可变的。ABDAT中的大多数元素都是NaT值。ABDAT中最多有三个有效日期。如果ABDAT有一个日期,我希望将其放在名为ABDAT1的新列中。如果ABDAT有两个有效日期,我希望将第一个日期放在ABDAT1中,将第二个日期放在ABDAT2中。如果ABDAT有三个日期,我想将第一个放在ABDAT1中,第二个放在ABDAT2中,第三个放在ABDAT3中。以下是 Dataframe 中ABDAT列的示例。
ID FDAT ABDAT
0 1 2004-08-17 [2004-08-17 00:00:00, NaT, NaT, NaT]
1 1 2005-07-10 [NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT]
2 1 2006-06-12 [NaT, NaT]
3 3 2001-12-20 [NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT, NaT]
4 3 2003-07-14 [2001-02-17 00:00:00, NaT, NaT, NaT, NaT, NaT]
5 3 2004-06-01 [NaT, 2012-12-21 00:00:00, NaT, NaT, NaT, NaT, NaT, 2018-05-01 00:00:00, NaT]
我想创造
ID FDAT ABDAT1 ABDAT2 ABDAT3
0 1 2004-08-17 2004-08-17 NaT NaT
1 1 2005-07-10 NaT NaT NaT
2 1 2006-06-12 NaT NaT NaT
3 3 2001-12-20 NaT NaT NaT
4 3 2003-07-14 2001-02-17 NaT NaT
5 3 2004-06-01 2012-12-21 2018-05-01 NaT
Dataframe 相当大(800000行)
谢谢
1条答案
按热度按时间s4n0splo1#
其实很简单:
这就给了你
但是,在这里我假设你没有超过3个可能的日期。你可以这样概括:
它给出了