Python Panda数据帧排序与月 - 年

时间:2015-04-21 16:17:25

标签: python sorting pandas graph

我是一个python和pandas初学者,我在分组操作后排序数据帧时遇到问题。我可以在groupby和count之后获得排序数据但是当我将所有数据放在另一个数据框中时,我没有得到排序数据。

这是我的尝试

conn = sqlite3.connect('Demo.sqlite')

df = pd.read_sql("SELECT * FROM Table where Column  LIKE 'x.%'", conn)
pf = pd.read_sql("SELECT * FROM Table", conn)

df['DateTime'] = df['DATE'].apply(lambda x: dt.datetime.fromtimestamp(x).strftime('%b %Y'))
pf['DateTime'] = pf['DATE'].apply(lambda x: dt.datetime.fromtimestamp(x).strftime('%b %Y'))

df1 = df.set_index('DateTime', drop=False)
pf1 = pf.set_index('DateTime', drop=False)

df1 = df1.sort(['DateTime'])
pf1 = pf1.sort(['DateTime'])

R1= df1['DateTime'].groupby(lambda x: x)
R2= pf1['DateTime'].groupby(lambda x: x)
TT= TotalBuild.count() - PrivateBuild.count()

result = pd.DataFrame({'R1': R1.count(),
                       'TT': TT,
                       'R2': R2.count()
                       })

这是结果数据框的输出。

Check the output of Result data frame here

我想按月份对数据进行排序。当前数据框按月排序,这就是为什么1月份的所有数据一起显示的原因。一旦数据被排序,我想绘制条形图。

1 个答案:

答案 0 :(得分:2)

一种简单的方法是将索引转换为日期,排序然后转换回月份。

=iif(Len(Replace(Replace(Fields!DateField.Value," ",""), Format(Today, "dd/MM/yyyy"),"")) = 0, "Transparent" ,iif(Len(Replace(Replace(Replace(Fields!DateField.Value," ",""), Format(Today, "dd/MM/yyyy"),""), Format(Today().AddDays(-1), "dd/MM/yyyy"),"")) = 0, "Green", "Red"))

转换为日期时,pandas会将月份转换为每月的第一个日期,因此可以进行排序。希望它有所帮助。