У меня есть текстовый файл, который выглядит так:
Input
3 A 4 4.2
4 B 5 3.2
5 C 4 4.0
5 D 4 8.0
........
Единственные интересующие столбцы - это 0,1 и 3. Мой скрипт ниже делает следующее: если значение в столбце 1 соответствует определенной букве, столбец 3 умножается на константу.
Теперь я хочу пройти через столбец 0 и, если есть повторяющиеся целые числа, добавить значения в столбце 3 вместе (т. Е. В столбце 0 есть две цифры 5, поэтому я бы добавил 1,2 и 2,4 (значения после умножения на константу, 4,0 x 0,3). = 1.2)).
Output
3 A 4 3.4
4 B 5 3.2
5 C 4 3.6 (the entries in column 1 and 2 don't really matter after addition)
........
Я думаю, это было бы легко в пандах, но я написал в некоторых словарях, что усложняет процесс:
import numpy as np
ring_dict = dict()
answer = []
ring = open('data.txt', "r")
for line in ring:
f2 = line.split(" ")
key2 = int(f2[0])
value2 = float(f2[3])
name = f2[1]
ring_dict[key2] = [name, value2]
if name == 'A':
answer = value2 * 0.81
elif name == 'B':
answer = value2 * 1
else:
answer = value2 * 0.3
Я не уверен, как действовать здесь. Я не могу перебрать key2 (т. Е. Для x в key2), чтобы найти повторы, поэтому я не уверен, как проверить наличие дубликатов. Аналогично, если я превращу key2 в массив, словарь не будет работать.