首页 > 解决方案 > 从 pandas DataFrame 中获取 3 列的最大值?

问题描述

我有一个包含 3 列的 Pandas DataFrame:

c={'a': [['US']],'b': [['US']], 'c': [['US','BE']]}
df = pd.DataFrame(c, columns = ['a','b','c'])

现在我需要这 3 列的最大值。

我试过了:

df['max_val'] = df[['a','b','c']].max(axis=1)

结果Nan不是预期的输出:US.
如何获得这 3 列的最大值?(如果其中一个包含怎么办Nan

标签: pandasdataframemax

解决方案


利用:

c={'a': [['US', 'BE'],['US']],'b': [['US'],['US']], 'c': [['US','BE'],['US','BE']]}
df = pd.DataFrame(c, columns = ['a','b','c'])
                  
            
from collections import Counter
df = df[['a','b','c']].apply(lambda x: list(Counter(map(tuple, x)).most_common()[0][0]), 1)
print (df)
0    [US, BE]
1        [US]
dtype: object

推荐阅读