首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据清理python数据

数据清理python数据
EN

Stack Overflow用户
提问于 2012-08-28 21:14:58
回答 1查看 984关注 0票数 1

我有一个包含1408行数据的Python数据。我的目标是将一周内与给定工作日相关的最大数和最小数与上一周最大/最小发生的同一天下一周的数目进行比较。本质上,我想看看五分之一(因为每周有5天),排名第1和第5,看看它们每周的变化情况。建立一个与每个工作日相关联的数字的cdf。

  1. 为了清理数据,我需要总共删除18周的数据。也就是说,每周在与假日相关的数据中加上假日发生后的整个一周。
  2. 在此之后,我想我应该在dataframe中插入一个列,用周一到周五来标记我的所有数据--对于文件中的所有日期(有6年的数据)。标记M的原因是为了使我能够按升序排序每一个与一周中的一天相关的数字。一周中的某一天。

对第1或第2条或两者都提出方法建议,将不胜感激。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-09-03 21:46:57

第二种方法似乎最好是将df.groupby()apply()结合在一起,对产生的Groupby对象进行处理。也许一个例子是最好的解释方法。

提供数据:

代码语言:javascript
复制
In [53]: df
Out[53]: 
            Value
2012-08-01     61
2012-08-02     52
2012-08-03     89
2012-08-06     44
2012-08-07     35
2012-08-08     98
2012-08-09     64
2012-08-10     48
2012-08-13    100
2012-08-14     95
2012-08-15     14
2012-08-16     55
2012-08-17     58
2012-08-20     11
2012-08-21     28
2012-08-22     95
2012-08-23     18
2012-08-24     81
2012-08-27     27
2012-08-28     81
2012-08-29     28
2012-08-30     16
2012-08-31     50

In [54]: def rankdays(df):
  .....:    if len(df) != 5:
  .....:        return pandas.Series()
  .....:    return pandas.Series(df.Value.rank(), index=df.index.weekday)
  .....: 

In [52]: df.groupby(lambda x: x.week).apply(rankdays).unstack()
Out[52]: 
    0  1  2  3  4
32  2  1  5  4  3
33  5  4  1  2  3
34  1  3  5  2  4
35  2  5  3  1  4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12167634

复制
相关文章

相似问题

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