我可以基于python数据框中的相同列值更新列的值吗?

时间:2019-07-02 06:22:01

标签: python pandas dataframe

我有一个数据框来捕获访问网页的人的特征。页面中每个用户花费的时间列表是我作为输入获得的一项特色功能。我想用列表的最大值更新此列。有什么方法可以做到这一点?

假设我的数据是:

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"])

但是,这并没有改变我想要的列。有什么我想念的吗?

2 个答案:

答案 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))