python - 如何对熊猫中的多个新列进行相同的计算?
问题描述
假设以下数据框:
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
?
进行了重大编辑以提供更好的非平凡示例(我希望)
解决方案
applymap
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()
推荐阅读
- cookies - 如何在 .NET 4.5.2 Web 应用程序中排除 SameSite 属性
- php - 复杂的 SQL 函数,“语法错误或访问冲突:1065 查询为空”
- powerbi - Power BI Desktop 中的数据不刷新
- ios - 使用图像名称初始化 ImageView
- amazon-web-services - pyarrow 作为 lambda 层
- pandas - 如何在函数后将值从 pandas 组添加到新的 Dataframe?
- ssas - SSAS MDX:带日期范围的时间计算
- javascript - 为什么我的 React 应用程序只在没有缓存的情况下刷新加载?
- reactjs - 如何在 styled-components 的 GlobalStyles 中导入 Ant Design css 样式?
- python - 仅来自 Qt5 ColorDialog 的颜色渐变