繁体   English   中英

根据两者的索引将一个数据帧中的值填充到另一个数据帧中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM