pandas:我怎样才能使用apply()函数为单个列?

我有一个有两列的pandas数据框。 我需要改变第一列的值而不影响第二列,并且只改变第一列值就可以得到整个dataframe。 我怎样才能在pandas中应用?

给定一个示例数据框df为:

 a,b 1,2 2,3 3,4 4,5 

你想要的是:

 df['a'] = df['a'].apply(lambda x: x + 1) 

返回:

  ab 0 2 2 1 3 3 2 4 4 3 5 5 

你根本不需要一个函数。 您可以直接在整列上工作。

示例数据:

 >>> df = pd.DataFrame({'a': [100, 1000], 'b': [200, 2000], 'c': [300, 3000]}) >>> df abc 0 100 200 300 1 1000 2000 3000 

a所有值的一半:

 >>> df.a = df.a / 2 >>> df abc 0 50 200 300 1 500 2000 3000 

对于单个列更好地使用map() ,像这样:

 df = pd.DataFrame([{'a': 15, 'b': 15, 'c': 5}, {'a': 20, 'b': 10, 'c': 7}, {'a': 25, 'b': 30, 'c': 9}]) abc 0 15 15 5 1 20 10 7 2 25 30 9 df['a'] = df['a'].map(lambda a: a / 2.) abc 0 7.5 15 5 1 10.0 10 7 2 12.5 30 9