我是一个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月份的所有数据一起显示的原因。一旦数据被排序,我想绘制条形图。
答案 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会将月份转换为每月的第一个日期,因此可以进行排序。希望它有所帮助。