当我运行以下代码时,我得到一个KeyError :('a','发生在索引a')。如何在不遇到此问题的情况下在Dataframe上应用此功能或类似功能?
运行python3.6,pandas v0.22.0
import numpy as np
import pandas as pd
def add(a, b):
return a + b
df = pd.DataFrame(np.random.randn(3, 3),
columns = ['a', 'b', 'c'])
df.apply(lambda x: add(x['a'], x['c']))
Run Code Online (Sandbox Code Playgroud)
我认为需要axis=1按行进行处理的参数apply:
axis : {0 或 '索引', 1 或 '列'}, 默认 0
0或索引:将函数应用于每列
1或列:将函数应用于每行
df = df.apply(lambda x: add(x['a'], x['c']), axis=1)
print (df)
0 -0.802652
1 0.145142
2 -1.160743
dtype: float64
Run Code Online (Sandbox Code Playgroud)