2016-12-24 6 views
2

私は初心者の質問と間違いのために、あいにくPythonには新しいです。プロット:単一の大きな列とその頻度

私はそれを自分で見つけようとしましたが、基本情報の一部が失われているように感じます。

目的は、この情報を棒グラフでプロットすることです。

私はpandasデータフレーム、43169行×1列から列を分離しました。例:

user_lifetime 
0 947.000000 
1 951.000000 
2 523.000000 
3 741.000000 
4 840.000000 
5 563.000000 

これをプロットするには、それぞれ固有の値の頻度を取得する必要がありますか?

lifetime=df.apply(lambda x: x.value_counts(dropna=False)). 

それは私が目指していたものと思われるが、私がプロットするために使用することができ、テーブルとは思われないこと

   user_lifetime 
15947.000000 4677 
15916.000000 1951 
2017.000000  1917 
2016.000000  1131 
2014.000000  445 

のようなテーブルを生成します。 はこれを見つけました。

私が逃したものについての提案はありますか? 講義でこれらの例を使用したので、パッケージの最優先順位はggplotです。あなたはしかし、バーのトンで終わるかもしれないチェーンpd.Series.value_countsplot(kind='bar')(またはplot.bar()、バージョン0.17.1の新機能と完全に同等)

df['user_lifetime'].value_counts().plot(kind='bar') 

に必要

+0

は、私は、Pythonに非常に慣れていないんだけど、あなたは正しいGEOMを使用する場合ggplotはあなたのためのカウントを行います。 – Axeman

答えて

2

...たぶんヒストグラムを探していますが、各値はビンになりますか? DataFrame.histが必要です。私はいくつかのランダムなデータを使用している場合

:私は上記を使用した場合

import pandas as pd 
import numpy as np 

df = pd.DataFrame(np.random.randint(1,1000,(40000,1)), columns=['user_lifetime']) 

私はあまりにも多くのバーを持っているでしょう。だから私は、ヒストグラムをしたい20個のビンと言うと:

df.user_lifetime.hist(bins=20) 

Histogram

+0

ええと、私は誰にも見せる気がしないほどのバーがありました。しかし、2番目のものは、私が持っているもののように見える: – Deramite

+0

[リンク](https://i.gyazo.com/37d0d580e11c6c2699d2c881fd1187a7.png) しかし、それは私が予想しているものではない、それは周波数を数えていないようです多くの空白がないでしょう。 – Deramite

+1

それぞれのビン(またはバケット)に含まれる値の数を数えます。あなたはビン数で遊んでみたいかもしれませんが、20はあなたのためにあまりにも多いかもしれません。 (また、これはあなたが常にあなたの質問にあなたの望む出力が含まれているようにするのが良い例です) –

関連する問題