我需要总结File1的col1的每个值的“value”列数量,并将其导出到输出文件。我是python的新手,需要为成千上万的记录做这件事。
col1 col2 value
559 1 91987224 2400000000
559 0 91987224 100000000
558 0 91987224 100000000
557 2 87978332 500000000
557 1 59966218 2400000000
557 0 64064811 100000000
col1 Sum
559 2500000000
558 1000000000
557 3000000000
提前致谢。
P.S:由于权限问题,我无法使用pandas库。我尝试了以下代码。与追溯共享它:
import csv
fin = open("File1.txt","r")
list_txid = {}
num_tx = {}
amount_tx = {}
for line in fin:
line = line.rstrip()
f = line.split("\t")
txid = f[0]
amount = int(f[3])
fin.close()
for txid in list_txid:
num_tx[txid] += 1
amount_tx[txid] += amount
print("{0}\t{1:d}\t{2:d}".format(txid, amount_tx[txid]))
追踪(最近一次通话): 文件“C:\ Users .... \ sum.py”,第14行,in amount = int(f [3]) IndexError:列表索引超出范围
答案 0 :(得分:1)
您可以使用pandas
:
df = pd.read_csv('in.csv', delim_whitespace=True)
# col1 col2 value
# 559 1 91987224 2400000000
# 559 0 91987224 100000000
# 558 0 91987224 100000000
# 557 2 87978332 500000000
# 557 1 59966218 2400000000
# 557 0 64064811 100000000
result = df.groupby(df.index)['value'].sum().reset_index()
# index value
# 0 557 3000000000
# 1 558 100000000
# 2 559 2500000000
result.to_csv('out.csv', index=False)
答案 1 :(得分:1)