我是 python 和 pandas 初学者,在 groupby 操作后对数据框进行排序时遇到问题。我可以在 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
我想按月年对数据框进行排序。目前数据框按月份排序,这就是为什么一月份的所有数据都一起显示的原因。一旦数据排序,我想绘制条形图。
最佳答案
一种简单的方法是将索引转换为日期,排序,然后转换回月-年。
result.index = pd.to_datetime(result.index)
result.sort_index(inplace=True)
result.index = monthly_transpose.index.strftime('%B-%Y')
当转换为日期时,pandas 会将月年转换为每个月的第一个日期,因此可以进行排序。希望对您有所帮助。
关于Python Panda 数据框按月-年排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777828/