Skip to main content
 首页 » 编程设计

python之将最长的字段放入数据框列

2025年05月04日13java哥

我有一个包含三列的 Pandas 数据框,都是文本。如何创建一个仅包含三列中最长文本的新列?我将长度定义为简单的字符数。

请您参考如下方法:

我真的不确定这有多有效,但是,您可以对 DF 中的所有内容使用 .applymap(len) - 获取列轴上的最大索引,然后使用 .lookup(...) 就可以了,eg:

开始于:

df = pd.DataFrame({  
     'a': ['a', 'bb', 'c'],  
     'b': ['aaa', 'bb', 'cc'],  
     'c': ['a', 'bbb', 'ccc']  
}) 

你可以这样做:

mx = df.applymap(len).idxmax(axis=1) 

它为您提供了从每一行中获取的相关列:

0    b 
1    c 
2    c 
dtype: object 

然后您在原始 DF 中查找它们并将其作为新列分配回 DF,例如:

df['d'] = df.lookup(mx.index, mx.values) 

给你一个最终的 DF:

    a    b    c    d 
0   a  aaa    a  aaa 
1  bb   bb  bbb  bbb 
2   c   cc  ccc  ccc