holoviews 数据集 select 具有非法 python 可变字符的维度

holoviews dataset select dimension with illegal python variable characters

我有一个全息视图数据集,其中一个关键维度的名称包含 space 和括号。我怎样才能为这个维度做相当于 ds.select(dimension_name=dimension_value) 的事情?请看下面的例子。

import pandas as pd
import holoviews as hv
hv.extension('bokeh', logo=False)

data = {
    'a (a)': [1, 1, 2, 2],
    'b': [1, 2, 3, 4],
}

df_ = pd.DataFrame(data=data)

ds_ = hv.Dataset(df_, kdims=['a (a)'], vdims=['b'])

ds_.select(WHAT DO I PUT HERE=1)['b'] # <-- What to do?

通常你会select这样:

ds_.select(a=1)


但是由于这个列名是一个非法python变量名,你必须传递一个字典,这个字典将被双星解包:

ds_.select(**{'a (a)': 1})


使用这个非法变量名的切片也可以使用字典来完成:

ds_.select(**{'a (a)': (1, 2.5)})


或者,如果您不介意更改数据集:
您可以重命名列,替换 pandas 数据框中的 space 和括号等。或者在 pandas 数据帧上执行 selection:df_[df_['a (a)'] == 1]


你在discourse.holoviz.org上的类似问题得到了正确的答案,这也让我再次学习:)
https://discourse.holoviz.org/t/how-to-change-order-of-data-of-points-with-non-numeric-x-axis/52/5


有关 select 在全息视图中处理数据的更多信息:
http://holoviews.org/user_guide/Indexing_and_Selecting_Data.html