python - 使用对应的列名将两个 pandas 数据帧相乘
问题描述
我有熊猫数据框,它们至少共享一些常见的列名。列名的位置不保证相同,但如果它们共享一个通用名称,我想将它们相乘。
例如,在数据框“A”中,收入可能是第 3 列,但在数据框“B”中,收入可能是第 11 列。有没有办法可以使用常见的列名将它们相乘?
df1=pd.DataFrame({'a':[1,3,5],'c':[10,20,40],'b':[8,6,4]})
df2=pd.DataFrame({'b':[1,33,5],'a':[10,200,7],'c':[0,6,1]})
我想将这些相乘。永远不能保证每列的位置都在同一个位置。有什么“聪明”的方法吗?去做这个。
我已经将代码放在一起,我会在其中查找列名的交集,然后按字母顺序对它们进行排序,然后相乘,但我认为有一些更智能的东西?
抱歉,如果这是一个太明显的问题,我只是认为 pandas 中必须有一些聪明的东西,不需要我编写 20 行代码。
解决方案
您可以将它们相乘。只要它们具有相同的列名和行号
import pandas as pd
df1=pd.DataFrame({'a':[1,3,5],'c':[10,20,40],'b':[8,6,4]})
df2=pd.DataFrame({'b':[1,33,5],'a':[10,200,7],'c':[0,6,1]})
df = df1 * d2
print(df)
结果
推荐阅读
- scala - 在 scala 中使用多级继承和使用“with”关键字在 1 级中使用所有级别的区别
- azure-cloud-services - 将 .Net 框架从 4.6.2 迁移到 4.7.2 后,Azure 云服务无法正常工作
- c++ - 将字符串流的缓冲区重定向到已使用的已定义内存
- java - 如何使用 XSSF 检查 Excel 单元格的类型
- pdf - 如何将 pdf 文件发送到 SAP 中的假脱机?
- chef-infra - 无法 Knife Bootstrap Ubuntu Ec2 实例
- typescript - Typescript + Jest:如何部分模拟类实例
- python - 分散数据帧的快速插值
- xml - 如何将所有属性从 xml 传递到流文件?
- php - 我想要在 laravel 中的这个查询