我正在尝试选择与其他列的条件相匹配的某些输入,并使用该值创建一个新列。你知道吗
我试过.merge
,.loc
ifelse
,但还是有点不对劲。你知道吗
我有一个数据框架,以股票代码作为索引,下面的列用于多个股票和期权数据['date', 'price', 'exdate', 'position']
如果满足“位置”列中包含“1”的条件,我希望查看表并获取“日期”上等于“exdate”的“价格”,并将其显示在右侧的新列中。价格应与1相同。简短示例:
import numpy as np
import pandas as pd
t = pd.DataFrame(index=['AAPL','AAPL','AAPL','AAPL', 'AMZN', 'AMZN', 'AMZN', 'AMZN'])
t['Date'] = ['12/01/2017','12/02/2017','12/03/2017','12/04/2017','12/01/2017','12/02/2017','12/03/2017','12/04/2017']
t['Price'] = [125.5, 123.1, 126.4, 128.9, 431.2, 433.5, 432.6, 444.0]
t['Exdate'] = ['12/04/2017','12/04/2017','12/04/2017','12/04/2017','12/04/2017','12/04/2017','12/04/2017','12/04/2017']
t['Position'] = [1,0,0,0,0,0,1,0]
t
据我所知,您希望在两个条件下合并,一个是索引匹配,另一个是日期vs exdate匹配。它类似于this question,但在那时(0.19)Pandas不支持混合索引/列条件。现在(0.24)是这样,但是索引应该有一个名称。下面是一个例子:
输出
从这个问题来看,我不确定应该如何处理位置为0的记录,但我希望你也能用同样的方法来解决。你知道吗
相关问题 更多 >
编程相关推荐