Python 熊猫从另一列复制值,直到某一日期

Python 熊猫从另一列复制值,直到某一日期,python,pandas,Python,Pandas,我有一个类型为datetime64[ns]的列Date,每个日期包含一行。还有两列A和B。假设日期从2019年12月1日开始,一直持续到2020年2月29日,我希望将列A中的所有值复制到列B,直到某个日期x 例如,如果x=2020年2月15日,我需要将2019年12月1日至2020年2月14日的A值复制到B列中 感谢您的帮助 我认为您不需要像x那样复制数据,所以通过以下方式创建掩码: 您可以这样使用:df[df[“Date”].isin(pd.Date\u range(start\u Date

我有一个类型为
datetime64[ns]
的列
Date
,每个日期包含一行。还有两列
A
B
。假设日期从2019年12月1日开始,一直持续到2020年2月29日,我希望将列
A
中的所有值复制到列
B
,直到某个日期x

例如,如果x=2020年2月15日,我需要将2019年12月1日至2020年2月14日的A值复制到B列中

感谢您的帮助

我认为您不需要像
x
那样复制数据,所以通过以下方式创建掩码:



您可以这样使用:
df[df[“Date”].isin(pd.Date\u range(start\u Date,end\u Date))]
np.random.seed(2020)

rng = pd.date_range('2019-12-01', '2020-02-29')
df = pd.DataFrame({'Date': rng, 
                   'A': np.random.randint(10, size=91),
                   'B': np.random.randint(10, size=91)})  
print (df.head(20))
         Date  A  B
0  2019-12-01  0  5
1  2019-12-02  8  2
2  2019-12-03  3  4
3  2019-12-04  6  3
4  2019-12-05  3  0
5  2019-12-06  3  9
6  2019-12-07  7  8
7  2019-12-08  8  2
8  2019-12-09  0  0
9  2019-12-10  0  6
10 2019-12-11  8  7
11 2019-12-12  9  1
12 2019-12-13  3  7
13 2019-12-14  7  2
14 2019-12-15  2  5
15 2019-12-16  3  9
16 2019-12-17  6  6
17 2019-12-18  5  7
18 2019-12-19  0  9
19 2019-12-20  4  3
x = '2019-12-10'

df['B'] = df['B'].mask(df["Date"].lt(x), df['A'])
print (df.head(20))
         Date  A  B
0  2019-12-01  0  0
1  2019-12-02  8  8
2  2019-12-03  3  3
3  2019-12-04  6  6
4  2019-12-05  3  3
5  2019-12-06  3  3
6  2019-12-07  7  7
7  2019-12-08  8  8
8  2019-12-09  0  0
9  2019-12-10  0  6
10 2019-12-11  8  7
11 2019-12-12  9  1
12 2019-12-13  3  7
13 2019-12-14  7  2
14 2019-12-15  2  5
15 2019-12-16  3  9
16 2019-12-17  6  6
17 2019-12-18  5  7
18 2019-12-19  0  9
19 2019-12-20  4  3