[英]How to apply functions to a Dataframe with arrays within it, in Python?
我希望清楚問題,但讓我更好地解釋一下,我有這個 dataframe:
import pandas as pd
m = pd.DataFrame({'A': (1, 2, 3),
'B': ([0, 1, 2], [3, 4, 5], [6, 7, 8])})
我的目標是獲得 z 列,它是每個 y 數組的平方加上對應於列中 position 的 x 整數。 也許你可以通過這種方式得到它:
m = pd.DataFrame({'A': (1, 2, 3),
'B': ([1, 2, 3], [4, 5, 6], [7, 8, 9]),
'C': ([2, 5, 10], [18, 27, 38], [52, 67, 84])})
我可以使用以下代碼在 R 中做到這一點:
m <- m %>% mutate(z = map2(x,y, ~map2_dbl(.x,.y, ~ (.x + .y^2))))
Python中是否有類似的東西? 問候
在pandas
中,並且由於您的列中有 object ,這將使 pandas 中的大部分方法不起作用,我們在這里使用 for 循環。 這個方法應該夠快了~
m['C']=[(x + np.array(y)**2).tolist() for x , y in zip(m.A,m.B)]
通過使用 python 列表,這可能會變得非常低效。 我建議你在這里使用numpy
:
import numpy as np
m['C'] = (np.stack(m.B.values)**2 + m.A.values[:,None]).tolist()
print(m)
A B C
0 1 [1, 2, 3] [2, 5, 10]
1 2 [4, 5, 6] [18, 27, 38]
2 3 [7, 8, 9] [52, 67, 84]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.