【发布时间】:2021-01-06 16:15:41
【问题描述】:
我正在将某些数据分配到年份,有时由于时间原因它会落在错误的年份并且需要手动更正数据。 (长篇大论)看下面的例子,会更容易理解:
import pandas as pd
years=[2000,2001,2002,2003,2004,2005,2000,2001,2002,2003,2004,2005]
symbols=['ABC','ABC','ABC','ABC','ABC','ABC', 'DEF','DEF','DEF', 'DEF','DEF','DEF']
c=[3, 3, 2, 4, 3, 3, 3, 3, 4, 2, 3, 3]
df= pd.DataFrame({'y':years, 'g':symbols, 'count':c})
y g count
0 2000 ABC 3
1 2001 ABC 3
2 2002 ABC 2
3 2003 ABC 4
4 2004 ABC 3
5 2005 ABC 3
6 2000 DEF 3
7 2001 DEF 3
8 2002 DEF 4
9 2003 DEF 2
10 2004 DEF 3
11 2005 DEF 3
我希望我的输出看起来像这样 (这意味着我想将 2003 年 ABC 观测的第一个移动到 2002 年,并将 2002 年 DEF 观测的最后一个移动到 2003 年)
y g count result
0 2000 ABC 3
1 2001 ABC 3
2 2002 ABC 2
3 2003 ABC 4 2002
4 2004 ABC 3
5 2005 ABC 3
6 2000 DEF 3
7 2001 DEF 3
8 2002 DEF 4 2003
9 2003 DEF 2
10 2004 DEF 3
11 2005 DEF 3
我不知道如何编写代码来比较每一行与前一行和下一行,同时按.....
【问题讨论】:
-
模式不清楚...
-
if previous_row.C current_row.C 然后做点什么……
-
还没有整理好....
标签: python pandas group-by pandas-groupby row