我有一个类似这样的数据集:
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
什么?