我有一个标准普尔指数上几家公司股票收益的数据框架,我计算了它们的收益。你知道吗
我想有一个for循环,它从一个大的数据帧中获取返回值最高的前5个公司(例如)和返回值最低的5个公司。然后我想画出来。你知道吗
我有一个代码,给我所有公司的回报,并绘制它们。你知道吗
graph_df = pd.DataFrame()
for name in df['Name'].unique():
print(name) # keeping track of which tickers are included
name_df = df.copy()[df['Name']==name] # creating a new df, copying in the name columns
name_df[f"{name}_factor"] = name_df["Difference"]
if graph_df.empty:
graph_df = name_df[[f"{name}_factor"]]
else:
graph_df = graph_df.join(name_df[f"{name}_factor"])
这是print的一个片段(graph_df):
StockRet1 StockRet2 StockRet3 StockRet4 StockRet5
Dates
1990-01-31 0.000000 0.000000 0.000000 0.000000 0.000000
1990-02-28 -0.098820 0.000000 -0.076981 0.019755 -0.012170
1990-03-30 0.023653 0.000000 -0.011115 0.044565 -0.042621
1990-04-30 0.010303 0.000000 -0.074512 0.067319 -0.003569
正如你所见,情节非常混乱,所以我只想展示最高和最低的部分。谢谢你的帮助!你知道吗
我认为您可以使用nlargest(在pandas版本0.17.0中添加):
假设第6列取平均值。你知道吗
或者
假设感兴趣的列被标记为“data”,一种解决方案是
当您拥有整个数据帧时:
这将给出前5名和后5名。你只要把它们画出来就行了。你知道吗
为了避免数组之间的任何重叠,您可以将串联封装在
set()
中以获得唯一的值。你知道吗相关问题 更多 >
编程相关推荐