如何指定自定义顺序(即字符串列表)来对堆积面积图进行排序?
我想在图表上按 ['B'、'A'、'C'] 从最低到最高的顺序对区域进行排序,无论值如何。我查看了 alt.Order 的文档,但这似乎是基于聚合,而不是固定的自定义顺序。
import altair as alt
import pandas as pd
df = pd.DataFrame(
{'A': range(0,10),
'B': range(0,20,2),
'C': range(0,30,3)
},
)
df['date'] = range(0,10)
df = df.melt(id_vars='date')
chart = alt.Chart(df).mark_area().encode(
x="date",
y=alt.Y("value:Q", stack='zero'),
color="variable",
)
display(chart)
Run Code Online (Sandbox Code Playgroud) 给定两个系列:
import pandas as pd
ser1 = pd.Series(data = [1,2,3], index=[1,2,3])
ser2 = pd.Series(data = [1,2,3,4,5], index = ['a','b','c','d','e'])
Run Code Online (Sandbox Code Playgroud)
如何将两者相乘以获得所需的输出?
pd.DataFrame(
data = [[1,2,3],[2,4,6],[3,6,9],[4,8,12],[5,10,15]],
index = ser2.index,
columns = ser1.index,)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的方法是用索引和cols匹配两个序列构建一个临时数据帧,然后使用iteritems()对两个序列之一进行迭代。我觉得应该有一种更清洁的方法来实现这一目标。
我试图跨多个工作表读取xlsx工作簿中命名范围中包含的所有数据,但是出于本练习的目的,我不知道任何命名范围的名称会提前。
我可以访问,wb.defined_names但这返回一个DefinedNameList;如果我尝试对其进行迭代,则似乎无法访问其下的任何数据。
如何以字符串列表访问命名范围的名称和相应的单元格引用?
上下文:到目前为止,我已经使用xlwings实现了这一点,但是xlwings在打开wb的同时打开其他wb选项卡时遇到了问题。如果可以解决此问题,则切换到openpyxl似乎是一个不错的解决方案