0

私はパンダとipythonが初めてで、すべてをセットアップして現在遊んでいます。次のデータフレームがあります:

  Field  10   20   30   40   50   60   70   80   90   95
0   A   0    0    0    0    0    0    0    0    1    3
1   B   0    0    0    0    0    0    0    1    4   14
2   C   0    0    0    0    0    0    0    1    2    7
3   D   0    0    0    0    0    0    0    1    5   15
4   u   0    0    0    0    0    0    0    1    5   14
5   K   0    0    0    0    0    0    1    2    7   21
6   S   0    0    0    0    0    0    0    1    3    8
7   E   0    0    0    0    0    0    0    1    3    8
8   F   0    0    0    0    0    0    0    1    6   16

このデータをインポートするために csv ファイルを使用しました。

df = pd.read_csv('/mycsvfile.csv', 
                         index_col=False, header=0)

列の投稿がゼロであることがわかるように、このデータ フレームには多数の行がありますが、列のほとんどの行がゼロで、1 つまたは 2 つの行が「70」のような値で残っている可能性があります。

70、80、95列を強調して表示できる素敵なグラフにするにはどうすればよいでしょうか。

次のチュートリアルを見つけました: [http://pandas.pydata.org/pandas-docs/version/0.9.1/visualization.html][1]しかし、それでも良い数値を得ることができません。

4

1 に答える 1

4

ゼロ値をどのように処理するかによって少し異なりますが、アプローチは次のとおりです。

df = pd.DataFrame({'a': [0,0,0,0,70,0,0,90,0,0,80,0,0],
                       'b': [0,0,0,50,0,60,0,90,0,80,0,0,0]})

fig, axs = plt.subplots(1,2,figsize=(10,4))

# plot the original, for comparison
df.plot(ax=axs[0])

for name, col in df.iteritems():
    col[col != 0].plot(ax=axs[1], label=name)

axs[1].set_xlim(df.index[0],df.index[-1])
axs[1].set_ylim(bottom=0)
axs[1].legend(loc=0)

ここに画像の説明を入力

で何かをすることもできますが.replace(0,np.nan)、間に nan がある場合、matplotlib は線を描画しません。したがって、とにかく列をループすることになるでしょう(そして、dropna().plot()たとえば使用します)。

于 2013-11-07T08:16:42.390 に答える