如何解决获取 Altair transform_joinaggregate 中字段的第一个元素
我想在 transform_joinaggregate 中获取第一个元素(即 df 索引最低的元素),并在分组的 transform_calculate 中使用它,例如减去它。
我可以像下面这样在 Pandas 中计算它,但我正在寻找一种在 altair 中进行计算的方法。
下面的“偏移”列是我想在 altair 中获得的:
import altair as alt
import numpy as np
import pandas as pd
y = [1,2,3,4,6]
x = [1,3] * 2
cat = ['a','a','b','b']
df = pd.DataFrame({'cat':cat,'x':x,'y':y})
df['offset'] = df.groupby('cat')['y'].transform('first')
line = alt.Chart(df).mark_line().encode(
x='x:Q',y='y:Q',color='cat:N'
)
line2 = alt.Chart(df).mark_line(opacity=0.4).transform_calculate(
y2 = alt.datum.y - alt.datum.offset
).encode(
x='x:Q',y='y2:Q',color='cat:N'
)
line + line2
这给出了这个情节:
我想我可能需要使用“值”聚合和“切片”表达式,但我无法弄清楚。下面返回一个空图表(NaN)。
alt.Chart(df).mark_line(point=True).transform_joinaggregate(
vals = 'values(y)',groupby = ['cat']
).transform_calculate(
corr = alt.expr.slice(alt.datum.vals,1),y2 = alt.datum.y - alt.datum.corr
).encode(
x='x:Q',)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。