使用熊猫返回单日总和

时间:2019-03-20 22:57:46

标签: python pandas csv

我正在处理CSV文件,我需要返回特定日期的数据总和。到目前为止,我已经能够将代码分解为:

import panda as pd
df = pd.read_csv (r'C:Users\ern\Downloads\evergreen.csv')
sum_imps = df['money'].sum() #sum the total of the money column
sumimps_byday = df.groupby(['day'])[["money"]].sum() #groups the sum of the money column by day

现在,我所需要的只是能够更进一步,并在我选择的特定日期重新运行这笔钱。我认为这并不难,只需画一个空白即可。

2 个答案:

答案 0 :(得分:1)

total_money = df.loc[df['day'] == '20/03/2019', 'money'].sum()

应该可以解决问题。

例如

import pandas as pd

df = pd.DataFrame({'day': ['20/03/2019', '21/03/2019', '20/03/2019'],
                   'money': [1, 5, 7]})
print(df)

print('Total money for 20/03/2019: ' + str(df.loc[df['day'] == '20/03/2019', 'money'].sum()))

应提供所需的输出

          day  money
0  20/03/2019      1
1  21/03/2019      5
2  20/03/2019      7
Total money for 20/03/2019: 8

答案 1 :(得分:0)

让我们定义df如下:

import pandas as pd
df = pd.DataFrame(data = [['day1', 2900, 3000], ['day2', 3300, 3350], ['day3', 3200, 3150], ['day1', 3200, 3050]], columns = 'day, money, close'.split(', '))

df的外观如下。

df
>>>
     day    money   close
0   day1    2900    3000
1   day2    3300    3350
2   day3    3200    3150
3   day1    3200    3050

假设我想为sum获得{strong>钱的day,我们可以很容易地看到它是6100,我将执行以下操作。

df[df.day == 'day1']['money'].sum()
>>>6100
相关问题