我有一个 pandas 框架“df”,如下所示:
col1 col_group
0 1 1
1 -1 0
2 -2 0
3 4 2
4 2 1
我正在尝试复制“col1”中的值,除非我想修改“col1”中的值(如果它们位于“col_group”0 或 2 中)。修改只是将现有值乘以 50 %。我需要在 1MM+ 行上执行此操作,所以我想知道是否有生成新列的最佳方法?
所以我想要的输出是:
col1 col_group New
0 1 1 1
1 -1 0 -0.5
2 -2 0 -1
3 4 2 2
4 2 1 2
我目前正在使用 for 循环,但认为 pandas 中可能有更快的东西。
谢谢
最佳答案
df['new_col'] = df.apply( lambda x: x['col1'] * .5
if x['col_group'] in (0, 2) else x['col1'],
axis=1)
关于python - Pandas - 正确使用 Apply 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947531/