-2

我想做的就是按行业因素模型创建一个股票的十分位框架。

到目前为止,我已经制作了一个基于行业因素的十分位框架,名为 zongmok

宗木

还有一个名为 inds 的框架,显示有关股票属于哪个行业的信息。

指数

问题是如何创建一个新的数据框来显示每个股票在每个指数时间基于行业因素的十分位数。(新的数据框叫df,我试过用平方for循环,但是完成整个任务太慢了。)

df

这是我尝试过的代码:

for i in notebook.tqdm(range(len(df))):
    for j in notebook.tqdm(range(len(df.columns))):
        try:
            df[df.columns[j]].loc[df.index[i]] = zongmok[inds.loc[df.index][inds == zongmok.columns[j]].dropna(axis=1)[inds[inds == zongmok.columns[j]].dropna(axis=1).columns[j]].loc[df.index[i]]].loc[df.index[i]]
        except Exception:
            pass
        else:
            pass
4

1 回答 1

0

通过使用merge()它,您可以更轻松地将join两个数据框放在一起,而无需所有这些迭代;

例子:

我调用了数据框prod_df,我想将它与另一个名为market_df. 事情是这样的:

数据框prod_df

在此处输入图像描述

数据框market_df

在此处输入图像描述

**用于合并它们的代码语法Inner Join

# Lets join the two dataframe depending on `prod_df
second_merge_df = pd.merge(prod_df, market_df, how='inner', on='Prod_id')
second_merge_df.sort_values(by='Prod_id', ascending=True)

输出 在此处输入图像描述

于 2020-12-11T10:13:32.733 回答