这种方法是时间/cpu 密集型的,必须有更好的方法!有人可以帮我在不使用循环的情况下对以下代码进行矢量化吗?基本上,我有一个 df,每个主题都有多行,每一行都有一个值。我想添加一列,显示每个主题的最高值(主题的每一行都相同)。
import pandas as pd
import numpy as np
from numpy import nan
compare_table = pd.DataFrame({
'id': [1,1,1,2,2,3,3,3],
'day#': [1, 2, 3, 1, 2, 1, 2, 3],
'random#': [2,5,1,6, 4, 5, 9, 3],
'highest_random#': [nan, nan, nan, nan, nan, nan, nan, nan]}, columns=[
'id', 'day#','random#','highest_random#'])
for element in list(compare_table['id'].unique()):
highest_random = max(compare_table.loc[compare_table.loc[:,'id']==element, 'random#'])
compare_table.loc[compare_table.loc[:,'id']==element, 'highest_random#']= highest_random