pandas中apply使用
data:
A B C
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
f = lambda x: x + 3
或:
def f(x):
return x + 3
对所有列操作
data.apply(f)
A B C
0 3 4 5
1 6 7 8
2 9 10 11
3 12 13 14
对单列操作
data['A'] = data['A'].apply(f)
A B C
0 3 1 2
1 6 4 5
2 9 7 8
3 12 10 11
根据单行多个参数得到结果
d = pd.DataFrame(np.arange(12).reshape(6,2), columns=["A", "B"])
def func(a, b):
print(a, b)
return "C"
d["C"] = d.apply(lambda x: func(x["A"], x["B"]), axis=1)
将结果返回给列
d = pd.DataFrame(np.arange(12).reshape(6,2), columns=["A", "B"])
def func(a, b):
print(a, b)
return "C"
d["C"], d["D"] = zip(*d.apply(lambda x: func(x["A"], x["B"]), axis=1))
d["C"], d["D"] = zip(*d["A"].apply(lambda x: func(x), axis=1))