如何将 apply() 函数用于单个列?

新手上路,请多包涵

我有一个带有两列的熊猫数据框。我需要在不影响第二列的情况下更改第一列的值,并在仅更改第一列值的情况下取回整个数据框。我如何在熊猫中使用 apply 来做到这一点?

原文由 Amani 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 664
2 个回答

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

    a  b
0  1  2
1  2  3
2  3  4
3  4  5

你想要的是:

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

返回:

    a  b
0  2  2
1  3  3
2  4  4
3  5  5

原文由 Fabio Lamanna 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于最好使用 map() 的单个列,如下所示:

 df = pd.DataFrame([{'a': 15, 'b': 15, 'c': 5}, {'a': 20, 'b': 10, 'c': 7}, {'a': 25, 'b': 30, 'c': 9}])

    a   b  c
0  15  15  5
1  20  10  7
2  25  30  9

df['a'] = df['a'].map(lambda a: a / 2.)

      a   b  c
0   7.5  15  5
1  10.0  10  7
2  12.5  30  9

原文由 George Petrov 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题