Python 在条件匹配后从另一个数据帧中的匹配索引复制值
在下面的测试数据框中,我试图在匹配某些条件后,从另一个数据框中的匹配索引复制一个值 这是来自名为Python 在条件匹配后从另一个数据帧中的匹配索引复制值,python,pandas,Python,Pandas,在下面的测试数据框中,我试图在匹配某些条件后,从另一个数据框中的匹配索引复制一个值 这是来自名为data2的数据帧的剪报: Signal Value2 2013-01-01 09:00:00 1.0 NaN 2013-01-01 10:00:00 1.0 NaN 2013-01-01 11:00:00 1.0 NaN 2013-01-01 12:00:00 1.0 NaN 2013-01-01 13:00:00 1.0 NaN 2013-01-01 14:00:
data2
的数据帧的剪报:
Signal Value2
2013-01-01 09:00:00 1.0 NaN
2013-01-01 10:00:00 1.0 NaN
2013-01-01 11:00:00 1.0 NaN
2013-01-01 12:00:00 1.0 NaN
2013-01-01 13:00:00 1.0 NaN
2013-01-01 14:00:00 -1.0 NaN
这是来自数据的剪报:
value
2013-01-01 09:00:00 9
2013-01-01 10:00:00 10
2013-01-01 11:00:00 11
2013-01-01 12:00:00 12
2013-01-01 13:00:00 13
2013-01-01 14:00:00 14
2013-01-01 15:00:00 15
2013-01-01 16:00:00 16
2013-01-02 09:00:00 33
2013-01-02 10:00:00 34
因此,当data2
Signal
在2013-01-01 14:00:00
显示-1
时,我想从数据中复制相应的值,即14
,并将其复制到data2
值2
以下是测试此功能的代码:
import pandas as pd
import datetime
import numpy as np
index = pd.date_range('2013-1-1',periods=100,freq='1h')
data = pd.DataFrame(data=list(range(100)), columns=['value'], index=index)
signal = 1.0
data2 = pd.DataFrame(data=signal, columns=['Signal'], index=index)
data2['Signal']['2013-01-01 14:00:00'] = -1.0
data2['Value2'] = np.nan
start = datetime.time(9,0,0)
end = datetime.time(16,00,0)
data = data.between_time(start,end)
这将最终用于一个大型数据帧,并将涉及多天。可能是这样的吗
data2.loc[data2.Signal == -1, 'Value2'] = data.loc[data2.Signal == -1, 'value']