gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 09:43:29 26 4
gpt4 key购买 nike

这是一个量化工作。我利用我之前的工作,通过基于移动平均线、MACD、KDJ 等的技术分析,筛选出一些想要的股票(候选人)。现在我想检查我的候选人的基本面值,在这种情况下,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

你能给我一个提示吗?非常感谢,非常感谢!

最佳答案

acually我解决这个问题并没有那么糟糕。
首先,在循环之外创建一个列表,我的意思是在循环之外,在这种情况下,在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com