【问题标题】:Python Panda dataframe sorting with month - yearPython Panda数据框按月-年排序
【发布时间】:2015-04-21 16:17:25
【问题描述】:

我是 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

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

【问题讨论】:

  • 您可以将图像上传到 stackoverflow 并将它们嵌入到您的问题中 - 请参阅:meta.stackexchange.com/questions/75491/…。无需将它们上传到有问题的网站。
  • 感谢您让我知道。我没有足够的声誉,所以我包括链接。一旦我有良好的声誉。我将在这个问题中包含图像。最重要的是,如果您知道答案而不是发布解决方案。
  • 您是否尝试过将 DateTime 列拆分为月和年两列?然后您可以按年排序,然后按月排序。
  • 我尝试拆分月份和年份,但它不起作用。如果您有解决方案,可以发帖吗?

标签: python sorting pandas graph


【解决方案1】:

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

result.index = pd.to_datetime(result.index)
result.sort_index(inplace=True)
result.index = monthly_transpose.index.strftime('%B-%Y')

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

【讨论】:

    猜你喜欢
    • 2017-04-03
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    相关资源
    最近更新 更多