熊猫仅从另一列复制值到某个日期

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

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

任何帮助表示赞赏!


繁星淼淼
浏览 88回答 1
1回答

侃侃尔雅

我认为您需要Series.mask的复制数据不那么像x,因此掩码由以下人员创建Series.lt: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  B0  2019-12-01  0  51  2019-12-02  8  22  2019-12-03  3  43  2019-12-04  6  34  2019-12-05  3  05  2019-12-06  3  96  2019-12-07  7  87  2019-12-08  8  28  2019-12-09  0  09  2019-12-10  0  610 2019-12-11  8  711 2019-12-12  9  112 2019-12-13  3  713 2019-12-14  7  214 2019-12-15  2  515 2019-12-16  3  916 2019-12-17  6  617 2019-12-18  5  718 2019-12-19  0  919 2019-12-20  4  3x = '2019-12-10'df['B'] = df['B'].mask(df["Date"].lt(x), df['A'])print (df.head(20))         Date  A  B0  2019-12-01  0  01  2019-12-02  8  82  2019-12-03  3  33  2019-12-04  6  64  2019-12-05  3  35  2019-12-06  3  36  2019-12-07  7  77  2019-12-08  8  88  2019-12-09  0  09  2019-12-10  0  610 2019-12-11  8  711 2019-12-12  9  112 2019-12-13  3  713 2019-12-14  7  214 2019-12-15  2  515 2019-12-16  3  916 2019-12-17  6  617 2019-12-18  5  718 2019-12-19  0  919 2019-12-20  4  3
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python