Скажем, у нас есть 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
?