![](/img/trans.png)
[英]How to fill the Pandas Dataframe based on values from another two dataframes
[英]Fill values from one dataframe into another dataframe based on index of the two
我有两个包含时间序列数据的数据框。
数据帧 A 包含时间步长 1 的数据,索引值每次递增 1。
数据框 B 包含时间步长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
自动执行此操作。
使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.