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