gpt4 book ai didi

python - 根据另一列中的 str 将列中的 int 值相加

转载 作者:行者123 更新时间:2023-12-01 02:48:50 24 4
gpt4 key购买 nike

我正在尝试编写一个代码来将每个州的所有“计数”相加。这是我的 .dbf(csv) 文件的示例。

Count        Lat                    Lon       index_righ  STATE
1345 31.551580000000000 -88.448380000000000 1992 Alabama
445 31.999867999999900 -88.404543000000000 1992 Alabama
299 32.448521000000000 -88.360196000000000 1992 Alabama
106 32.897511999999900 -88.315329000000000 1992 Alabama
229 33.346817000000000 -88.269934000000000 1992 Alabama
270 33.796408999999900 -88.224000000000000 1992 Alabama
217 34.246262999999900 -88.177518000000000 1992 Alabama

我希望输出如下所示:

Count    State
2911 Alabama
etc. etc.

这是我的代码。

result = {}
with open('C:/Users/brownk98/Desktop/result_out.dbf', 'rt') as f:
count = 0
#r = csv.DictReader(csvfile, delimiter=',')
for row in f:
values = row.split(",")
count = None
state = None
count = int(values[0])
state = str(values[4])
if state is not None:
if state not in result :
result[state] += count
else:
result[state] = count
print(result)

我收到错误:ValueError:以 10 为基数的 int() 的文字无效:'\x03u\x07\n'

如有任何帮助,我们将不胜感激。

最佳答案

@kayla,你们都是对的。不确定为什么它会给你带来错误。这是我尝试过的并且有效。请注意,我已根据您的输入准备了一个“.csv”文件

result= {}
with open('trail.csv') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
count, state = int(row[0]), row[4]
if state in result.keys():
result[state] += count
else:
result[state] = count
print( result )


>> {'Alabama': 2911}

考虑到您的情况,如果文件很大并且您无法将其转换为 .CSV,请尝试使用制表符进行拆分,即 values = row.split("\t")

关于python - 根据另一列中的 str 将列中的 int 值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45013957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com