【发布时间】:2020-10-20 05:52:34
【问题描述】:
我有数据框
df = pd.DataFrame({'A':[1,2,2,1],'B':[20,21,22,32],'C':[4,5,6,7],'D':[99,98,97,96]})
dfcopy = df.copy()
我想根据列“A”中的值将函数应用于df 列“B”和“C”中的值,然后更新dfcopy 中相应行中的结果。
例如,对于“A”为 1 的每一行,获取该行的“B”和“C”值,应用函数并将结果存储在 dfcopy 中。对于“A”==2 的第一行,“B”的值为 21,“C”的值为 5。假设函数是乘以 2x2 个矩阵:np.dot(np.ones((2,2)),np.array([[21],[5]]))。然后我们想要df[1,'B']=26 和df[1,'C']=26。然后我想在A 中重复一个不同的值,直到根据A 中的每个值唯一地应用该函数。
最后,我不想逐行迭代,检查A 中的值,然后应用函数。这是因为将根据A 的每个值进行操作(即 np.ones((2,2)) 将替换为文件中与A 中的值相对应的值,而我没有不想重复了
我确信我可以强制解决方案(例如,通过循环和设置值),但我猜测 Pandas API 有一种优雅的方法可以做到这一点。我就是找不到。
【问题讨论】:
标签: python pandas dataframe matrix matrix-multiplication