[英]data cleaning a python dataframe
我有一個包含1408行數據的Python數據框。 我的目標是將一周中與給定工作日相關的最大和最小數字與一周前同一天發生的最大/最小的下周數字進行比較。 本質上,我想研究五分位數(因為一個工作周內有5天)的排名1和5,並觀察它們在一周之間的變化情況。 建立與每個工作日相關的數字的cdf。
要清除數據,我總共需要刪除18周。 即,與假期相關聯的數據框中的每周以及假期發生后下一周的整個星期。
在此之后,我想我應該在數據框中插入一列,用文件的所有日期(星期一至星期五)標記我的所有數據(文件中有6年的數據)。 標記MF的原因是,我可以按升序對與星期幾相關的每個數字進行排序。 並在星期幾查詢。
關於1.或2.或兩者的方法學建議將不勝感激。
謝謝!
#2似乎最好在最終的Groupby對象上結合使用df.groupby()
和apply()
來解決。 也許一個例子是最好的解釋方法。
給定一個數據框:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.