我有一个基本的脚本,比较两个CSV文件,并记录在一个新的变化(daily-diff.csv):
CSV(导入1):
| 地址|标价|
| - -|- -|
| 101号大街|5万英镑|
| 主街道102号|10万英镑|
CSV(导入2):
| 地址|标价|
| - -|- -|
| 101号大街|5万5千英镑|
| 主街道102号|10万英镑|
| 103号大街|20万英镑|
with open('2022-10-04.csv', 'r') as csv1, open('2022-10-05.csv', 'r') as csv2:
import1 = csv1.readlines()
import2 = csv2.readlines()
with open('daily-diff.csv', 'w') as outFile:
for row in import2:
if row not in import1:
outFile.write(row)
结果:
| | |
| - -|- -|
| 101号大街|5万5千英镑|
| 103号大街|20万英镑|
这里有几个明显的问题,但我最希望得到的建议是更具体地说明返回到daily-diff.csv
的内容:
- 理想情况下,它将忽略新的或已删除的列表,以专注于价格变化
- 它将有一个额外的列,以便:地址、旧价格和当前价格均已反映
期望的CSV结果:
| 地址|旧价格|新价格|
| - -|- -|- -|
| 101号大街|5万英镑|五万五千|
2条答案
按热度按时间bqujaahr1#
这是我发现在数据库中工作最好/最容易的东西。使用Python内置的数据库
sqlite3
。pgpifvop2#
下面是一个工作示例,说明如何仅使用标准库工具来完成此操作:
使用示例CSV输入文件运行此命令会得到所需的结果。
注:这假定第一列具有唯一值(即,在一个CSV文件中没有两行具有相同的“地址”)。
这也适用于其他列(“价格”除外)。
如果您要“大规模”地使用Pandas(如评论中所建议的那样),那么使用特定的工具来实现这一目的可能是明智的。但是对于这个简单的用例,像上面的脚本这样的东西应该是可以的。
希望这对你有帮助。