我有兩個包含時間序列資料的資料框。
資料幀 A 包含時間步長 1 的資料,索引值每次遞增 1。
資料框 B 包含 timestep 的資料n,索引值每次遞增 n。
我希望執行以下操作:在 Dataframe A 中添加一列并填充 Dataframe B 中的值,這樣如果 A 中該行的索引值位于 B 中的連續索引之間,我將為 A 中的所有此類行填充相同的值.
我將說明如下:
A:
id val1
0 2
1 3
2 4
3 1
4 6
5 23
6 2
7 12
8 56
9 34
10 90
...
B:
id tval
0 1
3 5
6 9
9 34
12 3434
...
現在,我的結果應該如下所示:
A:
id val1 tval
0 2 1
1 3 1
2 4 1
3 1 5
4 6 5
5 23 5
6 2 9
7 12 9
8 56 9
9 34 34
10 90 34
...
我想為任何n.
uj5u.com熱心網友回復:
使用merge_asof:
df = pd.merge_asof(A, B, left_index=True, right_index=True)
print (df)
val1 tval
id
0 2 1
1 3 1
2 4 1
3 1 5
4 6 5
5 23 5
6 2 9
7 12 9
8 56 9
9 34 34
10 90 34
如果id是列:
df = pd.merge_asof(A, B, on='id')
print (df)
id val1 tval
0 0 2 1
1 1 3 1
2 2 4 1
3 3 1 5
4 4 6 5
5 5 23 5
6 6 2 9
7 7 12 9
8 8 56 9
9 9 34 34
10 10 90 34
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496107.html
