Skip to main content
 首页 » 编程设计

python之如何对 Pandas 中的多个新列进行相同的计算

2025年05月04日20jyk

假设以下数据帧:

df1:

a        b     
'a'      'aaaaa' 
'bb'     'bbbb' 
'ccc'    'ccc' 
'dddd'   'dd' 
'eeeee'  'e' 

df2:

c       d     
'aaa'   'a' 
'bbb'   'bb' 
'ccc'   'ccc' 
'ddd'   'dddd' 
'eee'   'eeeee' 

我想对所有列进行相同的计算,这会产生一个新列。

假设计算是lambda x,y: len(x)+len(y)

那么结果 df 将是:

ac     bd     
4      6 
5      6 
6      6 
7      6 
8      6 

我关心的是避免对所有列/元素进行 for 循环。 如何对所有相关列 column_list1、column_list2 进行相同的计算?


进行主要编辑以提供更好的非平凡示例(我希望)

请您参考如下方法:

应用 map

c = df1.columns + df2.columns 
d1 = df1.set_axis(c, axis=1, inplace=False) 
d2 = df2.set_axis(c, axis=1, inplace=False) 
 
d1.applymap(len) + d2.applymap(len) 
 
   ac  bd 
0   4   6 
1   5   6 
2   6   6 
3   7   6 
4   8   6 

stack 和 str.len

c = df1.columns + df2.columns 
d1 = df1.set_axis(c, axis=1, inplace=False) 
d2 = df2.set_axis(c, axis=1, inplace=False) 
 
(d1.stack().str.len() + d2.stack().str.len()).unstack()