python - 比较两个文件的第二列并计算百分比增加或减少
问题描述
我想比较 file1(逗号后的数值)和 file2(逗号后的数值)并显示百分比增加或减少。
file1.csv
item1,100
item2,150
item3,250
item4,550
item5,400
item6,125
file2.csv
item1,160
item2,180
item3,190
item4,1100
item5,100
item6,510
Result.csv
item1 +60%
item2 +20%
item3 -24%
item4 +100%
item5 -75%
item6 +308%
解决方案
你会想为这个研究熊猫。
像这样的东西应该工作。
- 读取两个数据集
- 将它们合并到 id 列
- 计算差异
- 删除我们不再需要的列
- 将结果写入 CSV
import pandas as pd
data1 = pd.read_csv('file1.csv', header=None, names=['id', 'val_1'])
data2 = pd.read_csv('file2.csv', header=None, names=['id', 'val_2'])
data1 \
.merge(data2, on = 'id') \
.assign(result = lambda data: data.val_2/data.val_1 - 1) \
.filter(['id', 'result']) \
.to_csv('Result.csv', header=None, index = False)
推荐阅读
- typescript - TypeScript:对象作为类属性(非静态或静态)
- django - 我在 /admin/login/ 处不断收到 RelatedObjectDoesNotExist。如何通过一对一关系在 Django 中成功创建用户配置文件?
- bootstrap-4 - 如何在 bundle.js 中使用元名称?
- python - Python 格式整数
- java - .getResource 在资源文件夹中找不到文件
- ios - iOS 8 - 当应用程序不活动时显示来电(没有 CallKit)
- php - 有没有办法让这些查询更短?
- ruby - 方法级联在这里是可能的吗?
- laravel - Laravel route in multiple middelwares
- listview - 根据 Xamarin Forms 中的项目数设置 Listview 高度