【发布时间】:2019-09-07 13:50:23
【问题描述】:
假设我们有一个 DataFrame df
df = pd.DataFrame({
"Id": [1, 2],
"Value": [2, 5]
})
df
Id Value
0 1 2
1 2 5
还有一些函数f,它接受df的元素并返回一个DataFrame。
def f(value):
return pd.DataFrame({"A": range(10, 10 + value), "B": range(20, 20 + value)})
f(2)
A B
0 10 20
1 11 21
我们想将f 应用于df["Value"] 中的每个元素,并将结果连接到df,如下所示:
Id Value A B
0 1 2 10 20
1 1 2 11 21
2 2 5 10 20
2 2 5 11 21
2 2 5 12 22
2 2 5 13 23
2 2 5 14 24
在 T-SQL 中,使用表 df 和表值函数 f,我们将使用 CROSS APPLY 来执行此操作:
SELECT * FROM df
CROSS APPLY f(df.Value)
我们如何在pandas 中做到这一点?
【问题讨论】:
标签: python sql pandas tsql dataframe