我想根据数据框中的 4 列进行计算,并将结果应用到新列。
我感兴趣的 4 列如下。
rating_1, time_1, rating_2, time_2 col_x col_y etc
0 1 1 1 1 1 1
如果 time_1 大于 time_2,我希望新列中包含 rating_1,如果 time_2 大于 time_2,我希望列中包含 rating_2。
请问最简单的方法是什么?
最佳答案
您可以使用numpy.where()方法:
In [241]: x
Out[241]:
rating_1 time_1 rating_2 time_2 col_x col_y
0 11 1 21 1 1 1
1 12 2 21 1 1 1
2 13 1 21 5 1 1
3 14 5 21 5 1 1
In [242]: x['new'] = np.where(x.time_1 > x.time_2, x.rating_1, x.rating_2)
In [243]: x
Out[243]:
rating_1 time_1 rating_2 time_2 col_x col_y new
0 11 1 21 1 1 1 21
1 12 2 21 1 1 1 12
2 13 1 21 5 1 1 21
3 14 5 21 5 1 1 21
关于python - Pandas dataframe - 基于简单计算创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40222181/