python-3.x - Pandas操作,将多个结果放入df列

标签 python-3.x pandas dataframe

这是一部量化作品。我利用之前的工作,通过基于移动平均线、MACD、KDJ 等的技术分析筛选出一些想要的股票(候选)。现在我想检查我的候选股票的基本面值(value),在本例中为 ROE。这是我的代码:

    root_path = '.\\__fundamentals__'

    df = pd.DataFrame(pd.read_csv("C:\\candidates.csv", encoding='GBK'))  # 14 candidates this time
    for code in list(df['code']):
        i = str(code).zfill(6)

        for root, dirs, files in os.walk(root_path):
            for csv in files:
                if csv.startswith('{}.csv'.format(i)):
                    csv_path = os.path.join(root, csv)  # based on candidates looking for dupont value

                    df1 = pd.DataFrame(pd.read_csv("{}".format(csv_path), encoding='GBK'))
                    df2['ROE'] = df2['净资产收益率'].str.strip("%").astype(float)/100
                    ROE = [df2['ROE'].mean().round(decimals=3)]
                    df3 = pd.DataFrame({'ROE_Mean': ROE})
                    print(df3)

这是 DOM

C:\Users\Mike_Leigh\.conda\envs\LEIGH\python.exe "P:/LEIGH PYTHON/Codes/Quant/analyze_stock.py"
   ROE_Mean
0    -0.218
   ROE_Mean
0     0.121
   ROE_Mean
0     0.043
   ROE_Mean
0     0.197
   ROE_Mean
0     0.095
   ROE_Mean
0     0.085
...
   ROE_Mean
0     0.178

Process finished with exit code 0

我想要的输出是这样的:

   ROE_Mean
0    -0.218
1     0.121
2     0.043
3     0.197
4     0.095
5     0.085
...
14     0.178

请您给我一点提示好吗?非常感谢,非常感谢!

最佳答案

实际上我解决这个问题并没有那么糟糕。 首先,在循环外创建一个列表,我的意思是循环外,在本例中,在 df

之前
roe_avg = []
df = pd.DataFrame(pd.read_csv("C:\\candidates.csv", encoding='GBK'))
....
    df2['ROE'] = df2['净资产收益率'].str.strip("%").astype(float) / 100
    ROE_avg = df2['ROE'].mean().round(decimals=3)
    roe_avg.append(ROE_avg)
df['ROE_avg'] = roe_avg
print(df)

DOM

        name    code  ROE_avg
1   仙鹤股份  603733    0.121
3   泸州老窖     568    0.197
4   兴蓉环境     598    0.095
...
15  濮阳惠成  300481    0.148
16  中科创达  300496    0.101
17  森霸传感  300701    0.178

Process finished with exit code 0

感谢@filippo

关于python-3.x - Pandas操作,将多个结果放入df列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62227064/

相关文章:

python 3 : Asterisk in print function

python-3.x - 语法警告 : name 'item' is assigned to before global declaration global item

python - 提取 Pandas 中日期时间类型列的第一天

linux - cv2 imdecode不返回任何base64字符串

python - 如何将两个参数传递给 Pool.starmap()?

python - 如果实体重复,如何绘制断条

pandas - 如何默认打印 pandas 数据框的前 n 行?

arrays - 如何使用循环生成的数组作为数据帧中的列来创建数据帧

Pandas 根据列值 reshape 数据框

r - R中的不均匀矩阵变换?