我有公司名称,日期和市盈率的列表。 我需要找到给定日期的前10年数据的平均值,以便仅考虑月底日期。
例如,如果我需要查找截至2015年12月31日的平均值.....我需要首先查找从2005年12月31日到2015年12月31日的所有前一个月末的数据。然后是平均值。
必需的输出: required output
这是我到目前为止所做的。...
df = pd.read_csv('daily_valuation_ratios_cc.csv')
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')
columns = ['pe', 'price_bv', 'mcap_ns', 'ev_ebidta']
df_mean = df.groupby('Company Name')[columns].resample('M').mean()
但是这种方法每天都在寻找平均值,并且每月显示结果,这与我的样本输出不同。 我是熊猫新手,请帮忙。
编辑:
df3 = df.groupby(['Company Name','year','month'])
df3.first()
此代码有效,现在我只遇到一个问题,将数据帧导出到to_csv。请帮助
答案 0 :(得分:1)
数据框具有一个称为“ groupby”的特殊功能,该功能可以选择列,并且可以进行汇总。
因此,如果要运行data.groupby('pe'),则会看到该列。
现在,如果要继续使用.describe,则将获得标准偏差/平均值/分钟/等。
示例:
data.groupby('pe').describe()
希望这会有所帮助!
编辑:您还可以使用内置的聚合函数,例如.max()/。mean()/ ect。使用groupby()。