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