小编ac2*_*c24的帖子

带自定义排序的 Altair 堆叠区域

如何指定自定义顺序(即字符串列表)来对堆积面积图进行排序?

我想在图表上按 ['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)

python altair

4
推荐指数
1
解决办法
1392
查看次数

来自两个系列的笛卡尔积,长度和索引不同

给定两个系列:

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()对两个序列之一进行迭代。我觉得应该有一种更清洁的方法来实现这一目标。

python arrays numpy dataframe pandas

2
推荐指数
2
解决办法
506
查看次数

Openpyxl:列出工作簿的所有已定义名称

我试图跨多个工作表读取xlsx工作簿中命名范围中包含的所有数据,但是出于本练习的目的,我不知道任何命名范围的名称会提前。

我可以访问,wb.defined_names但这返回一个DefinedNameList;如果我尝试对其进行迭代,则似乎无法访问其下的任何数据。

如何以字符串列表访问命名范围的名称和相应的单元格引用?

上下文:到目前为止,我已经使用xlwings实现了这一点,但是xlwings在打开wb的同时打开其他wb选项卡时遇到了问题。如果可以解决此问题,则切换到openpyxl似乎是一个不错的解决方案

python openpyxl

1
推荐指数
1
解决办法
1092
查看次数

标签 统计

python ×3

altair ×1

arrays ×1

dataframe ×1

numpy ×1

openpyxl ×1

pandas ×1