0

次のようなデータセットがあります。

fruits = ["orange", "plum", "lime"]
data = [(random.choice(fruits), 
         random.randint(0,100), 
         random.randint(0,100)) for i in range(16)]
dframe = pd.DataFrame(data, columns=["fruit", "x", "y"])

wherefruitにはいくつかの値しかありません。プロットで見たい果物の種類を選択できるように、選択ウィジェットが必要です。

私が現在持っている更新機能は次のとおりです。

source = bk.ColumnDataSource(dframe)
by_fruit = dframe.groupby('fruit')

def update(fruit):
    grouped = by_fruit.get_group(fruit)
    source.data['x'] = grouped['x']
    source.data['y'] = grouped['y']
    source.data['fruit'] = grouped['fruit']
    source.push_notebook()

interact(update, fruit=fruits)

しかし、各列の値を調べて再割り当てすることは、より多くの列を取得するにつれて過度に冗長に見えます。列を省略すると、長さが異なり、位置がずれてしまうため、エラーが発生しやすくなります。

Pandas はスライスとさいの目切りが得意で、何かが足りない気がします。Seriesの各列をColumnDataSource同時に変更するより簡潔な方法は何ですか?

[ IPython Notebook のこの例]

4

1 に答える 1