0
同じサイズのDataFrame X
とY
から関数z_ij = f(x_ij, y_ij)
を適用して、結果をDataFrame Z
に保存する方法はありますか?関数を2つのデータフレームに要素的に適用する
同じサイズのDataFrame X
とY
から関数z_ij = f(x_ij, y_ij)
を適用して、結果をDataFrame Z
に保存する方法はありますか?関数を2つのデータフレームに要素的に適用する
それは、これらの機能のために、あなたは、単にためZ = X + Y
またはZ = X - Y
など
を行うことができますので、機能の多くはすでに、などなど+-*/
として、データフレームのためにベクトル化されている、あなたが持っている機能の種類に依存しますより一般的な関数であれば、numpy.vectorize
を使用してベクトル化して2つのデータフレームに適用することができます。
import numpy as np
import pandas as pd
X = pd.DataFrame([[1,2], [3,4]])
Y = pd.DataFrame([[2,1], [3,3]])
def f(x, y): # this is a demo function that takes in two ints and
return str(x) + str(y) # concatenate them as str
vecF = np.vectorize(f) # vectorize the function with numpy.vectorize
X
# 0 1
#0 1 2
#1 3 4
Y
# 0 1
#0 2 1
#1 3 3
pd.DataFrame(vecF(X, Y)) # apply the function to two data frames
# 0 1
#0 12 21
#1 33 43