【发布时间】:2021-07-07 06:22:16
【问题描述】:
我希望我的代码计算数字列 X 中每个 Y 列值的总和
reader = csv.reader(f)
csv_l=list(reader)
rows = len(csv_l)-1
columns = len(csv_l[0])
without_header = csv_l[1:]
number_list = [[int(x) if x.isdigit() else x for x in lst] for lst in without_header]
my_dict = {}
for d in number_list:
if d[0] in my_dict.keys():
my_dict[d[0]] += d[3]
else:
my_dict[d[0]] = d[3]
如果输入 CSV 列中的值是一个整数,它工作得非常好,但我发现如果该值是一个浮点数,isdigit() 会失败,它会将结果作为浮点数拼凑成字符串而不是一个补充。
我为此使用了 pandas,在这里它可以工作,但我希望它在“纯 python”中。
dataframe = pd.read_csv(filePath)
new_dataframe = dataframe.groupby('Column Y')['Column X'].sum().reset_index(name='Sum of Values')
return(new_dataframe)
【问题讨论】:
-
你的意思是不使用任何库?
-
如果我没记错的话,
isdigit()方法仅适用于字符串。不知道如何将它应用到浮点数并且不会弹出 AttributeErrors。
标签: python pandas csv aggregation