在具有不同行数的数据集上应用 transform_lookup
Applying transform_lookup on datasets with different number of rows
我目前正在学习 Altair 的地图功能,在查看其中一个示例 (https://altair-viz.github.io/gallery/airport_connections.html) 时,我注意到数据集(airports.csv 和 flights-airport.csv)有不同行数。 transform_lookup即使是这样也可以申请吗?
是的,可以将 transform_lookup
应用于具有不同行数的数据集。查找转换相当于基于指定键列的 one-sided 连接:无论每个数据集有多少行,对于主数据集的每一行,查找数据中的第一个匹配项都会连接到数据。
一个简单的例子来证明这一点:
import altair as alt
import pandas as pd
df1 = pd.DataFrame({
'key': ['A', 'B', 'C'],
'x': [1, 2, 3]
})
df2 = pd.DataFrame({
'key': ['A', 'B', 'C', 'D'],
'y': [1, 2, 3, 4]
})
alt.Chart(df1).transform_lookup(
lookup='key',
from_=alt.LookupData(df2, key='key', fields=['y'])
).mark_bar().encode(
x='x:Q',
y='y:O',
color='key:N'
)
Lookup transform 文档中提供了更多信息。
我目前正在学习 Altair 的地图功能,在查看其中一个示例 (https://altair-viz.github.io/gallery/airport_connections.html) 时,我注意到数据集(airports.csv 和 flights-airport.csv)有不同行数。 transform_lookup即使是这样也可以申请吗?
是的,可以将 transform_lookup
应用于具有不同行数的数据集。查找转换相当于基于指定键列的 one-sided 连接:无论每个数据集有多少行,对于主数据集的每一行,查找数据中的第一个匹配项都会连接到数据。
一个简单的例子来证明这一点:
import altair as alt
import pandas as pd
df1 = pd.DataFrame({
'key': ['A', 'B', 'C'],
'x': [1, 2, 3]
})
df2 = pd.DataFrame({
'key': ['A', 'B', 'C', 'D'],
'y': [1, 2, 3, 4]
})
alt.Chart(df1).transform_lookup(
lookup='key',
from_=alt.LookupData(df2, key='key', fields=['y'])
).mark_bar().encode(
x='x:Q',
y='y:O',
color='key:N'
)
Lookup transform 文档中提供了更多信息。