我的csv文件中有一个数据框' df '(附加链接): https://drive.google.com/open?id=1UiarOKWJo3HcdA1lh5EcR5lrtSjCOtAX
我将以下函数应用于上面的df:`
def createKeys(df):
df.sort_values(by = ['KEY'], inplace = True)
df['Whatever'] = df['KEY'].apply(lambda x: x.split("_")[0] + "_" + x.split("_")[1])
df['STRIKE_PRICE'] = df['KEY'].apply(lambda x: float(x.split("_")[2]))
df['STRIKE_PR'] = df['STRIKE_PRICE']
df['OPTION_TYP'] = df['KEY'].apply(lambda x: x.split("_")[3])
df.set_index(keys = ['Whatever','OPTION_TYP'], inplace= True)
return df
df= createKeys(df)
我得到以下数据框(图片中没有一些列 - 表的水平长度>图像的剪辑大小):
对于“KEY”(索引)中的每个键,我想要“STRIKE_PR”列中的所有执行价格(图像中不存在)并分别对“CE”和“PE”选项类型执行操作(对于所有这些罢工)。
EG。假设我有1260 CE,1260 PE,1280 CE,1280 PE,1300 CE,1300 PE为key ='ACC_JUL-2018' 我想过滤掉CE组的这些罢工[1260,1280,1300]并对这些罢工采取行动。同样适用于PE。你能帮帮我吗? 提前谢谢。
答案 0 :(得分:1)
这是我要做的。首先,我将为我的1280 1260等创建一个特定列。让我们称之为KEY2
def split(s):
return(s.split("_")[2])
df["key2"] = df["KEY"].apply(split)
然后,我会分割我的数据帧以分别执行操作。假设你想找到PE的keys2的中位数,你会说
df[(df["option_TYP"]=="PE")]["key2"].median