我想在Type
列中为每个“交易”找到最接近的“报价”,并使用shift()
将数据从最接近的“报价”的Bid price
拉到“交易”的Prevailing price
“。
import pandas as pd
df = pd.DataFrame(data=[['Quote', '1.4', '1.4'],
['Quote', '1.6', '1.6'],
['Trade', '10.0', 'NaN'],
['Quote', '1.7', '1.7'],
['Trade', '11.0', 'NaN'],
['Trade', '11.0', 'NaN'],
['Trade', '11.0', 'NaN']],
columns=['Type', 'Bid price', 'Prevailing price'])
df['Prevailing price'] = df['Bid price'].shift().where(df['Type'] == 'Trade',df['Bid price'])
print df
我在输出中出现错误:对于连续的'Trade',结果基于上一个'Trade'的Bid price
,而不是最接近的“ Quote”的Bid price
,例如index 4-6
。] >
Type Bid price Prevailing price 0 Quote 1.4 1.4 1 Quote 1.6 1.6 2 Trade 10.0 1.6 3 Quote 1.7 1.7 4 Trade 11.0 1.7 5 Trade 11.0 11.0 6 Trade 11.0 11.0
所需的输出:
Type Bid price Prevailing price 0 Quote 1.4 1.4 1 Quote 1.6 1.6 2 Trade 10.0 1.6 3 Quote 1.7 1.7 4 Trade 11.0 1.7 5 Trade 11.0 1.7 6 Trade 11.0 1.7
谢谢您的帮助。
我想在“类型”列中为每个“交易”找到最近的“报价”,并使用shift()将数据从最近的“报价”的买入价拉到“交易”的现行价格。以...
用途: