我正在尝试将pandas DataFramesdf1.Number
添加到日期范围匹配的df2.Number
中的所有值。
我有一个创建的df1
,它看起来是这样的:
Start End Number
0 2000-01-01 2000-01-08 1
1 2000-01-02 2000-01-09 2
2 2000-01-03 2000-01-10 3
3 2000-01-04 2000-01-11 4
4 2000-01-05 2000-01-12 5
5 2000-01-06 2000-01-13 6
6 2000-01-07 2000-01-14 7
df2看起来是这样的:
^{pr2}$如果行中的日期范围匹配,我尝试将Number
从df1
分配给Number
中的Number
我使用的第一行代码是:
i = pd.date_range(df1.Start[0], df1.End[0])
if df2.Dates in i:
df2.Number.assign(df1.Number)
它不会抛出错误,但也不会为Number
分配任何内容。预期产出如下:
Dates Number
0 2000-01-01 1
1 2000-01-02 1,2
2 2000-01-03 1,2,3
3 2000-01-04 1,2,3,4
4 2000-01-05 1,2,3,4,5
5 2000-01-06 1,2,3,4,5,6
6 2000-01-07 1,2,3,4,5,6,7
7 2000-01-08 1,2,3,4,5,6,7
8 2000-01-09 2,3,4,5,6,7
9 2000-01-10 3,4,5,6,7
10 2000-01-11 4,5,6,7
11 2000-01-12 5,6,7
12 2000-01-13 6,7
13 2000-01-14 7
有人能告诉我为什么没有指定任何东西,或者有一个代码可以对所有行都这样做吗?谢谢。在
以下是一种方法:
注意
确保日期为日期时间格式:
^{pr2}${{cd2>使用广播
相关问题 更多 >
编程相关推荐