gpt4 book ai didi

Python/Pandas : sort by date and compute two week (rolling? ) 平均值

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:11 25 4
gpt4 key购买 nike

到目前为止,我已经阅读了 2 个 CSV 并根据公共(public)元素合并了它们。我获取合并的 CSV 的输出并迭代它们已合并的唯一元素。当我将它们分开时,我想生成一条每日计数线和从当前日期向后追溯的两周滚动平均值。我无法根据“打开日期”字段建立索引,但我仍然需要按此组织我的输出,其中最新的第一个。一旦这些按日期排序,我的每日计数绘图问题将得到纠正。我剩下的任务是计算一周内计数的两周滚动平均值。我查看了 Pandas 文档,我认为 moving_mean 可以工作,但这个函数的参数对我来说并没有真正的意义。我尝试过 biwk_avg = pd.rolling_mean(open_dt, 28) ,但这似乎不起作用。我知道有一种更简单的方法可以做到这一点,但我认为我已经遇到了可用文档的障碍。最终结果应该类似于 graph 。现在我的每日计数图尚未排序(尽管我认为我已指示它排序)并且是 unusable以行的形式。

def data_sort():
data_merge = data_extract()
domains = data_merge.groupby('PWx Domain')
for domain in domains.groups.items():
dsort = (data_merge.loc[domain[1]])
print (dsort.head())
open_dt = pd.to_datetime(dsort['Date Opened']).dt.date
#open_dt.to_csv('output\''+str(domain)+'_out.csv', sep = ',')
open_ct = open_dt.value_counts(sort= False)
biwk_avg = pd.rolling_mean(open_ct, 28)
plt.plot(open_ct,'bo')
plt.show()

data_sort()

最佳答案

在您的情况下,仅滚动平均值是不够的;您需要结合重采样(按天对数据进行分组)和 14 天滚动平均值(为什么在代码中使用 28?)。像薄的东西:

for _,domain in data_merge.groupby('PWx Domain'):
# Convert date to the index
domain.index = pd.to_datetime(domain['Date Opened'])
# Sort dy dates
domain.sort_index(inplace=True)
# Do the averaging
rolling = pd.rolling_mean(domain.resample('1D').mean(), 14)
plt.plot(rolling,'bo')
plt.show()

关于Python/Pandas : sort by date and compute two week (rolling? ) 平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44643035/

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