Python pandas 字典上的月份分割

Posted

技术标签:

【中文标题】Python pandas 字典上的月份分割【英文标题】:Day of the month split on Python pandas dictionary 【发布时间】:2021-01-13 07:35:26 【问题描述】:

我有以下股票清单:

对于每个我想按月份分开的解释图:

通过这种分离,我可以执行每天的累积回报,并按每个股票代码的最大和最小累积回报分开。

我正在从 SO 执行以下操作(来自另一个股票列表的示例): Call a report from a dictionary of dataframes:

data_dict = dict()  # create an empty dict here
for k, df in df_dict.items():
    df_dict[k]['Return %'] = df.iloc[:, 0].pct_change(-1)*100

    # aggregate the max and min of Return
    mm = df_dict[k]['Return %'].agg(['max', 'min'])  

    # add it to the dict, with ticker as the key
    data_dict[k] = 'max': mm.max(), 'min': mm.min()  

# convert to a dataframe if you want
mm_df = pd.DataFrame.from_dict(data_dict, orient='index')

# display(mm_df)
          max      min
aapl  8.70284 -4.90070
msft  6.60377 -4.08443

这会导致对列表中的股票进行线性分析,并且不会像我希望按照上图那样按天分开。..

问题:

如何插入一个步骤来按月份分割,然后执行上述代码?

【问题讨论】:

有人可以帮帮我吗? 【参考方案1】:

您可以使用pandas.groupbydatetime.date() 作为分组字段。然后您可以在组对象上使用sum 运算符来计算每日收益。这个post 显示使用groupby 和日期时间

【讨论】:

我会检查提到的帖子。

以上是关于Python pandas 字典上的月份分割的主要内容,如果未能解决你的问题,请参考以下文章

在python pandas df中将月份数转换为名称

Python Pandas:当日期小于 13 时,pandas.to_datetime() 正在切换日期和月份

Python 实战基础Pandas如何给股票数据新增年份和月份

pandas使用pd.offsets.BMonthEnd把dataframe数据中的时间数据列统一移动到所在月份上的月底最后一天(正确获取月末业务商业日期)

pandas使用pd.offsets.MonthEnd把dataframe数据中的时间数据列统一移动到所在月份上的月底最后一天(last day of month)

pandas使用pd.offsets.MonthBegin把dataframe数据中的时间数据列统一移动到所在月份上的月初第一天(move to month start)