与字符串关联的值的总和



我使用Python来处理CSV文件。我试图创建一个循环,将返回与第一列中的字符串关联的值。具体来说,对于包含字符串"string"我想对第二列的值求和。我有许多行包含字符串"字符串"的数据,我希望第二列的每个值都与字符串"字符串"相关联。把它们相加得到一个数字。

提前感谢您的帮助。

Column1                         Column2                     Column 3
9           NaN                        40                      101
12        String                        50                      102

我强烈建议你看看pandas

pd.read_csv()在速度和功能方面是首屈一指的(IMO)。然后,你会得到非常棒的分析功能。

无论如何,对于你的问题,有很多方法可以解决。这里有一个:
import pandas as pd
df = pd.read_csv('myfile.csv')
df.loc[df['Shadow'] == 'Full Shadow', 'February'].sum()
# gives: 35.37

或者,给你一个很酷的东西,你可以做一行熊猫:

df.groupby('Shadow').sum()

给:

February  March
Shadow                      
Full Shadow     35.37  41.05
No Record       26.60  39.97

如果您正在使用Python,这可能会对您有所帮助。我假设你使用Excel来存储值,所以你需要做的是:首先获得openpyxl包pip install openpyxl安装到您的python

import json
from openpyxl import load_workbook
workbook = load_workbook(filename='C:/Users/john/Desktop/fjdc.xlsx')
sheet = workbook["sheet1"]
sum = 0
# Using the values_only because you want to return the cells' values
# whatever the min and max col you want
for row in sheet.iter_rows(min_row=0,
min_col=0,
max_col=3,
values_only=True):
if(row[0]=="Full_Shadow"):
sum+=float(row[1])
# Using json here to be able to format the output for displaying later
print(json.dumps(sum))

最新更新