Я бы хотел сгруппировать данные в файл .csv
. Мои данные похожи на следующие:
code,balance
CN,999.99
CN,1.01
LS,177.77
LS,69.42
LA,200.43
WO,100
Я хотел бы сгруппировать элементы по коду и суммировать остатки подобных кодов. Желаемый результат будет:
code,blance
CN,1001
LS,247.19
...
Первоначально я использовал Pandas
для этой задачи, но у меня не было пакета, доступного для размещения этой библиотеки на сервере.
mydata = pd.read_csv('./tmp/temp.csv')
out = mydata.groupby('code').sum()
Решения предпочтительно должны быть совместимы с Python 2.6
.
Я извиняюсь, если это дубликат, другие посты, кажется, группируются по-другому.
Я также хотел бы избежать этого в -
if code = x
add balance to x_total
- путь
МОЕ РЕШЕНИЕ:
def groupit():
groups = defaultdict(list)
with open('tmp.csv') as fd:
reader = csv.DictReader(fd)
for row in reader:
groups[row['code']].append(float(row['balance.']))
total={key:sum(groups[key]) for key in groups}
total=str(total)
total=total.replace(' ','')
total=total.replace('{','')
total=total.replace('}','')
total=total.replace("'",'')
total=total.replace(',','\n')
total=total.replace(':',',')
outfile = open('out.csv','w+')
outfile.write('code,balance\n')
outfile.write(total)