合并一个csv和txt文件,然后使用python和pandas按字母顺序排列并消除重复项

2024-06-09 03:18:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试合并两个csv文件(项目.csv以及价格.csv)创建组合_列表.txt. 结果(合并)_列表.txt)应该是一个按字母顺序排序的列表,格式为:item(quantity):$total\u price\u for the \u item,并包含两行附加行:一行带10个等号的分隔行和一行带列表总金额的行:

bread (10.0): $3.0
cheese (0.4): $4.0
eggs (11.0): $2.2
ham (0.6): $9.0
milk (2.0): $6.5
peanut butter (4.0): $12.0
tuna (4.0):$8.0
====================
Total: $44.7

你知道吗项目.csv看起来像

eggs,6
milk,1
cheese,0.250
ham,0.250 
etc...

以及价格.txt看起来像

eggs,$0.2
milk,$3.25 
etc...

我必须用python做一个版本,用pandas做另一个版本,但是我在网上找到的东西都没有达到我可以使用的标准。我从

import csv 
with open('items.csv', 'r') as inputFile:
    new_file = csv.reader(inputFile, delimiter=' ', quotechar='|')
    for row in new_file:
        print .join(row)

但是我很难把所有的东西都放在一起。我发现的一些解决方案对我来说有点太复杂,或者无法处理没有列标题的文件。我还在想办法,但我知道对你们中的一些人来说这是非常容易的,所以我转向集体智慧,而不是一个人把头撞在墙上。你知道吗


Tags: 文件csv项目版本txt列表foretc
1条回答
网友
1楼 · 发布于 2024-06-09 03:18:26

Pandas有一个读取csv文件的内置方法。下面是将两组数据放入一个数据帧的代码:

import pandas as pd    

items = pd.read_csv('items.csv', index_col=0)
items.columns = columns=['Item', 'QTY']
prices = pd.read_csv('prices.csv', index_col=0)
prices.columns = ['Item', 'Price']
df = items.combine_first(prices)

排序和删除重复项:

df = df.sort()
df.drop_duplicates('Item', inplace=True)
df = df.to_csv('combined.txt')    

相关问题 更多 >