パンダデータフレームを使用したボケプロットの日付順序

queise

1日あたり4つの異なるスコアを持つパンダデータフレームがあります。

import pandas as pd 
df = pd.DataFrame( {u'Date' : ['2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18', '2014-08-19', '2014-08-20',
                               '2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18', '2014-08-19', '2014-08-20',
                               '2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18', '2014-08-19', '2014-08-20',
                               '2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18', '2014-08-19', '2014-08-20'],
                    u'Score': [-0.13, -0.25, 0.1, -0.3, -0.1, 0.1,
                               -0.1, 0.1, -0.05, 0.2, -0.13, -0.25,
                               0.2, 0.5, 0.4, -0.2, -0.25, 0.1,
                               -0.3, 0.1, 0.25, 0.05, -0.05, 0.2]})
    df.Date = pd.to_datetime(df.Date,format='%Y-%m-%d')

スコアの日平均をプロットしたいと思います。私が試しているのは:

from numpy import *
from bokeh.plotting import *
output_file('question.html')
figure(x_axis_type="datetime", plot_width=800, plot_height=500)
grouped = df.groupby("Date")
score = grouped["Score"]
avg = score.mean()
print dates
dates = asarray(grouped.groups.keys())
hold(True)
line(dates, avg, line_color="grey", line_width=8, line_join="round")
asterisk(dates, avg, line_color="black", size=15)
hold(False)

ただし、このコードは無秩序な日付配列につながります。

print dates
['2014-08-15T02:00:00.000000000+0200' '2014-08-16T02:00:00.000000000+0200'
 '2014-08-18T02:00:00.000000000+0200' '2014-08-19T02:00:00.000000000+0200'
 '2014-08-17T02:00:00.000000000+0200' '2014-08-20T02:00:00.000000000+0200']

したがって、私が取得したプロットの線(このリンクの画像を参照)は間違っています。

日付による並べ替え:

df = df.sort(['Date'])

役に立ちません。

一方、同じデータフレームを6日ではなく4日でプロットしようとすると、次のようになります。

df = pd.DataFrame( {u'Date' : ['2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18',
                               '2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18',
                               '2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18',
                               '2014-08-15', '2014-08-16', '2014-08-17', '2014-08-18'],
                    u'Score': [-0.13, -0.25, 0.1, -0.3,
                               -0.1, 0.1, -0.05, 0.2,
                               0.2, 0.5, 0.4, -0.2,
                               -0.3, 0.1, 0.25, 0.05]})

次に、日付配列が整然としていて、プロットが正しいです。理由はわかりませんが、とにかく6つ以上の日付のプロットが欲しいです。

助けていただければ幸いです。私が何か間違ったことをしていることは明らかですが、私はこれらの言語の初心者であり、すでに何百もの解決策を試しましたが、失敗しました。ありがとうございました!

behzad.nouri

タイプを確認すると、次のようになります。

>>> type(df.groupby('Date').groups)
<class 'dict'>

したがって、辞書として、アイテムまたはキーにアクセスするときの順序は保証されdf.groupby('Date').groupsませんあなたの例では; したがって、それらを別々に引き出す、との間の一貫性と対応が失われますgrouped.groups.keys()datesavggroupby

使用したい場合はdatetime、オブジェクトとシンプルなnumpyのアレイ(パンダシリーズとは反対に)、あなたは一貫受注を持つために、以下のように行うことができます。

>>> ts = df.groupby('Date')['Score'].mean()
>>> avg, dates = ts.values, ts.index.map(pd.Timestamp.date)

だからあなたは持っているでしょう:

>>> avg
array([-0.0825,  0.1125,  0.175 , -0.0625, -0.1325,  0.0375])
>>> dates
array([datetime.date(2014, 8, 15), datetime.date(2014, 8, 16), datetime.date(2014, 8, 17), datetime.date(2014, 8, 18),
       datetime.date(2014, 8, 19), datetime.date(2014, 8, 20)], dtype=object)

groupbyはデフォルトのパラメータsort=Trueがあるため、出力はすでにインデックスでソートされていることに注意しください

>>> df.groupby('Date')['Score'].mean()
Date
2014-08-15   -0.082
2014-08-16    0.112
2014-08-17    0.175
2014-08-18   -0.062
2014-08-19   -0.133
2014-08-20    0.038
Name: Score, dtype: float64

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

順序付けられたパンダデータフレームでインデックスを作成するために特定の行をプロモートします

分類Dev

日時インデックス付きのパンダデータフレームを使用したmatplotlib / seabornヒートマップ

分類Dev

日付を使用したパンダデータフレームの列演算

分類Dev

パンダのデータフレームで連続した順序の値をカウントする方法

分類Dev

スコアリストをバケット化し、パンダデータフレームの日付で効果的にグループ化する方法

分類Dev

パンダを使用したピボットデータフレーム

分類Dev

パンダのデータフレームで発生した間隔での日付の頻度のプロット

分類Dev

pythonを使用しているのと同じようにパンダのデータフレームの順序を維持しながら、matplotlibを使用して積み上げ棒グラフをプロットします

分類Dev

日付を追加し、パンダのデータフレームにフロートします

分類Dev

ggplot2を使用して、スタックされたバープロットのデータフレームの順序を管理します

分類Dev

ピボットテーブルを使用した列のパンダデータフレームの小計

分類Dev

特定の順序でパンダのデータフレームをアンスタックします

分類Dev

パンダデータフレームからのローソク足プロット、インデックスを日付に置き換えます

分類Dev

マスキングを使用した重複のあるピボットパンダデータフレーム

分類Dev

カテゴリデータと数値データの両方を使用したパンダデータフレームの散布図のプロット

分類Dev

R:metaforパッケージを使用したメタ分析のフォレストプロットの文字にアンダースコアを付ける

分類Dev

groupby、ピボット、転置を使用したPythonパンダのデータフレーム変換

分類Dev

データフレームのタイムスタンプ列を使用してパンダプロットの日付としてx軸ラベルを設定する方法

分類Dev

head()を使用して、ランダムな開始位置からデータフレーム内のn個の順序付けられた行を出力します

分類Dev

Python-列データフレーム名パンダの番号の順序をリセットする方法は?

分類Dev

Rでのカレンダーの順序で、月のスプレッドと順序を使用してデータフレームを再フォーマットします。

分類Dev

日時を含むグループ化されたパンダデータフレームを単一のタイムラインにプロットする

分類Dev

ピボットテーブルを使用したナローからワイドのパンダデータフレーム集計なし

分類Dev

パンダデータフレームを使用した海のヒートマップ

分類Dev

Rails4-カスタムペーパークリップアタッチメントプロセッサを使用したパラメータ解析の順序

分類Dev

PeriodIndexを使用してパンダのデータフレームをプロットする

分類Dev

tkinterを使用してパンダのデータフレームをプロットする

分類Dev

パンダ機能を使用して複数のデータフレームをプロットする

分類Dev

パンダのデータフレームのみを特定の日にプロットする

Related 関連記事

  1. 1

    順序付けられたパンダデータフレームでインデックスを作成するために特定の行をプロモートします

  2. 2

    日時インデックス付きのパンダデータフレームを使用したmatplotlib / seabornヒートマップ

  3. 3

    日付を使用したパンダデータフレームの列演算

  4. 4

    パンダのデータフレームで連続した順序の値をカウントする方法

  5. 5

    スコアリストをバケット化し、パンダデータフレームの日付で効果的にグループ化する方法

  6. 6

    パンダを使用したピボットデータフレーム

  7. 7

    パンダのデータフレームで発生した間隔での日付の頻度のプロット

  8. 8

    pythonを使用しているのと同じようにパンダのデータフレームの順序を維持しながら、matplotlibを使用して積み上げ棒グラフをプロットします

  9. 9

    日付を追加し、パンダのデータフレームにフロートします

  10. 10

    ggplot2を使用して、スタックされたバープロットのデータフレームの順序を管理します

  11. 11

    ピボットテーブルを使用した列のパンダデータフレームの小計

  12. 12

    特定の順序でパンダのデータフレームをアンスタックします

  13. 13

    パンダデータフレームからのローソク足プロット、インデックスを日付に置き換えます

  14. 14

    マスキングを使用した重複のあるピボットパンダデータフレーム

  15. 15

    カテゴリデータと数値データの両方を使用したパンダデータフレームの散布図のプロット

  16. 16

    R:metaforパッケージを使用したメタ分析のフォレストプロットの文字にアンダースコアを付ける

  17. 17

    groupby、ピボット、転置を使用したPythonパンダのデータフレーム変換

  18. 18

    データフレームのタイムスタンプ列を使用してパンダプロットの日付としてx軸ラベルを設定する方法

  19. 19

    head()を使用して、ランダムな開始位置からデータフレーム内のn個の順序付けられた行を出力します

  20. 20

    Python-列データフレーム名パンダの番号の順序をリセットする方法は?

  21. 21

    Rでのカレンダーの順序で、月のスプレッドと順序を使用してデータフレームを再フォーマットします。

  22. 22

    日時を含むグループ化されたパンダデータフレームを単一のタイムラインにプロットする

  23. 23

    ピボットテーブルを使用したナローからワイドのパンダデータフレーム集計なし

  24. 24

    パンダデータフレームを使用した海のヒートマップ

  25. 25

    Rails4-カスタムペーパークリップアタッチメントプロセッサを使用したパラメータ解析の順序

  26. 26

    PeriodIndexを使用してパンダのデータフレームをプロットする

  27. 27

    tkinterを使用してパンダのデータフレームをプロットする

  28. 28

    パンダ機能を使用して複数のデータフレームをプロットする

  29. 29

    パンダのデータフレームのみを特定の日にプロットする

ホットタグ

アーカイブ