我已阅读DataFrame.apply的文档
DataFrame.apply(FUNC,轴= 0,广播=假,生=假,减少=无,ARGS =(),** kwds)¶适用沿数据帧的输入轴的功能。
所以,我怎样才能应用功能的特定列?
In [1]: import pandas as pd
In [2]: data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
In [3]: df = pd.DataFrame(data)
In [4]: df
Out[4]:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
In [5]: def addOne(v):
...: v += 1
...: return v
...:
In [6]: df.apply(addOne, axis=1)
Out[6]:
A B C
0 2 5 8
1 3 6 9
2 4 7 10
我想addOne在df['A']
每一个值,而不是所有列。我怎样才能做到这一点与DataFrame.apply
。
感谢帮助!
答案是,
df['A'] = df['A'].map(addOne)
也许你会更好地了解difference,map
,applymap
的apply
。
但如果你坚持使用apply
,你可以尝试像下面。
def addOne(v):
v['A'] += 1
return v
df.apply(addOne, axis=1)
一个简单的方法是:
df['A'] = df['A'].apply(lambda x: x+1)