单个数据框单元格中系列的最大值

时间:2019-03-20 16:22:38

标签: python pandas numpy

我有一个数据框,其中每一行在单个列中包含一个Series。

             col1    
row1     [34,55,11,8]
row2     [36,76,69,6]
row3     [77,31,40,55]
row4     [51,41,26,30]

我想获得系列中每个值的最大值,并在新列中产生该值。

        col1                   max 
row1     [34,55,11,8]          55
row2     [36,76,69,6]          76
row3     [77,31,40,55]         77
row4     [51,41,26,30]         51

我的尝试

df['max'] = df['values'].apply(lambda x:x.max())
df.head()

错误

ValueError: zero-size array to reduction operation maximum which has no identity

3 个答案:

答案 0 :(得分:3)

使用数据框构造函数重新创建您的list类型的列

df['Max']=pd.DataFrame(df['values'].tolist(),index=df.index).max(1)

答案 1 :(得分:0)

您的代码中的一个小错误。通过以下操作可以达到相同的目的:

df['max']= df['values'].apply(lambda x: max(x))

答案 2 :(得分:0)

我对此有一个简单的方法:

import pandas as pd
df = pd.DataFrame({'A':[34,36,77,51],'B':[55,76,31,41],'C':[11,69,40,26],'D':[8,6,55,30]})
df

enter image description here

df['MMax'] = df.max(axis=1)
df.MMax

enter image description here