首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将一个数据帧的5列合并成一个新数据帧的长列?

如何将一个数据帧的5列合并成一个新数据帧的长列?
EN

Stack Overflow用户
提问于 2021-11-15 16:57:41
回答 1查看 38关注 0票数 0

我有一个数据帧BaseResult,它包含41年的每日温度数据(41行x 365列),其中行表示年,列表示天。我希望将以每天为中心的每5列合并成一个长列,这样我就有了一个新的数据帧RollingPercentile,即(200行x 365列)。在这里,Jan 03的列将包含Jan 01-05的数据,Jan 04的列将包含Jan 02-06的数据,等等。到目前为止,我只能水平合并列,即一列中有3个值,而不是具有3倍数据的较长列。

代码语言:javascript
复制
source_col_loc=BaseResult.columns.get_loc('01-01')
BaseResult['01-01']=BaseResult.iloc[:,source_col_loc+1:source_col_loc+4].apply(
    lambda x: ",".join(x.astype(str)),axis=1)

我如何做到这一点,以便它们垂直合并,以便我可以迭代整个数据帧?我的最终目标是计算每列的第90个百分位数,该列包含以Percentile90=RollingPercentile.percentile(0.9)索引的日期为中心的5天数据,这样我就得到了一个由365个值组成的数组。

EN

回答 1

Stack Overflow用户

发布于 2021-11-15 17:05:30

使用windows执行计算

滚动百分位数对多行数据进行聚合以获得一个值。

代码语言:javascript
复制
df.rolling(window=window, min_periods=min_periods).quantile(perc)

df.rolling(window=window, min_periods=min_periods).mean()

df.rolling(window=window, min_periods=min_periods).std()

df1.rolling(window=window, min_periods=min_periods).apply(lambda x: 
stats.linregress(x, df2), raw=False)

这些是您可以应用的滚动聚合的一些窗口和类型

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69978101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档