剥离数据文件



我有一个txt文件,其中包含我需要在python文件中打开的数据并执行计算。数据文件的示例如下:

1,22/01/2019,30
2,22/01/2019,40
3,22/01/2019,350
1,23/01/2019,45
2,25/01/2019,10
4,26/01/2019,750
2,29/01/2019,15
1,31/01/2019,50 

我需要创建一个代码,该代码将每行的结尾数添加在一起,以第一行开始(例如,它需要添加30、45等),我尝试使用str.Strip,并且没有一直在锻炼,请帮助!

我尝试的代码是

with open('events.txt') as fn:
    content = fn.readlines()
for line in content:
        if(line.startswith('1')):
            priceUnit=int(str.strip([0:13])) 

您可能应该使用split()

with open('file.txt', 'r') as f:
    lines = f.readlines()
total = 0
for line in lines:
    if str(line).startswith('1'):
        total += int(line.split(',')[-1])
unitList = []
total = 0
for line in content:
    values = line.split(",")
    unitList.append(values[2])
for i in values:
    total = total + i
print(total)
with open('events.txt') as fn:
      content = fn.readlines()
final_price = 0
for line in content:
    line = line.strip().split(",")
    if line[0]=="1":
        priceUnit = int(line[2])
        final_price+=priceUnit

使用上下文管理器阅读时,。一切都是字符串作为数据类型。并且每行均由" n"隔开。因此,同时使用strip()和split()方法。

将其保存为CSV,因为它已经由逗号界定(从字面上用.CSV重命名为文件)。然后使用Pandas打开它,然后根据第一列中的值1获取行,然后在最后一列中添加所有数字。

import pandas as pd
# originally data.txt
df = pd.read_csv('data.csv', header=None)
    0       1        2
-----------------------
0   1   22/01/2019  30
1   2   22/01/2019  40
2   3   22/01/2019  350
3   1   23/01/2019  45
4   2   25/01/2019  10
5   4   26/01/2019  750
6   2   29/01/2019  15
7   1   31/01/2019  50
df1 = df.loc[df[0] == 1]
df1
    0       1       2
0   1   22/01/2019  30
3   1   23/01/2019  45
7   1   31/01/2019  50
total = df1[2].sum()
total
>>> 125

使用collections中使用defaultdict您可以创建一个字典并基于键

添加值
from collections import  defaultdict
d = defaultdict(int)
with open("input.csv") as f:
    for line in f:
        line =  line.split(",")
        d[line[0]] += int(line[2])

哪个输出每个键的添加值

的添加值
defaultdict(int, {'1': 125, '2': 65, '3': 350, '4': 750})

最新更新