簡體   English   中英

如何在 Python 中將功能應用於其中包含 arrays 的 Dataframe?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM