我有一个数据框来捕获访问网页的人的特征。页面中每个用户花费的时间列表是我作为输入获得的一项特色功能。我想用列表的最大值更新此列。有什么方法可以做到这一点?
假设我的数据是:
df = pd.DataFrame({Page_id:{1,2,3,4}, User_count:{5,3,3,6}, Max_time:{[45,56,78,90,120],[87,109,23],[78,45,89],[103,178,398,121,431,98]})
我想要做的是将df中的Max_time列转换为Max_time:{120,109,89,431}
我不应该添加另一列来单独计算最大值,因为此表结构无法更改。
我尝试了以下操作:
for i in range(len(df)):
df.loc[i]["Max_time"] = max(df.loc[i]["Max_time"])
但是,这并没有改变我想要的列。有什么我想念的吗?
答案 0 :(得分:1)
df = pd.DataFrame({'Page_id':[1,2,3,4],'User_count':[5,3,3,6],'Max_time':[[45,56,78,90,120],[87,109,23],[78,45,89],[103,178,398,121,431,98]]})
df.Max_time = df.Max_time.apply(max)
结果:
Page_id User_count Max_time
0 1 5 120
1 2 3 109
2 3 3 89
3 4 6 431
答案 1 :(得分:0)
您可以使用此:
df['Max_time'] = df['Max_time'].map(lambda x: np.max(x))