我正在尝试将一个函数f1
应用于行['Utah,'Texas']
和f2
到其他行。我不想为每个函数创建单独的DF。
根据Wes McKinney的Python for Data Analysis进行调整的示例:
MWE:
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(4, 3),
columns=list('bde'),
index=['Utah', 'Ohio', 'Texas', 'Oregon'])
f1 = lambda x: (x-x.min())/(x.max() - x.min())
f2 = lambda x: (x-x.max())/(x.min() - x.max())
我尝试逐行选择:frame.loc['Utah'].apply(f1,axis=1)
。
我可以感觉到它是一个非常小的东西,但我... ...
答案 0 :(得分:1)
这将创建一个2d numpy.array
,其中每一行都是根据您为该行指定的规则将两个函数之一应用于数据帧:
np.where(
np.array([frame.index.isin(['Utah', 'Texas']) for _ in frame.columns]).T,
frame.apply(f1, axis=1),
frame.apply(f2, axis=1))
由于您没有完全指定输出,因此很难猜出您想要进一步做什么。