大熊猫据帧,如何应用功能的特定列?

问题描述 投票:11回答:2

我已阅读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

感谢帮助!

python pandas
2个回答
25
投票

答案是,

df['A'] = df['A'].map(addOne)

也许你会更好地了解differencemapapplymapapply

但如果你坚持使用apply,你可以尝试像下面。

def addOne(v):
    v['A'] += 1
    return v

df.apply(addOne, axis=1)

9
投票

一个简单的方法是:

df['A'] = df['A'].apply(lambda x: x+1)
© www.soinside.com 2019 - 2024. All rights reserved.