我正在处理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
现在,我所需要的只是能够更进一步,并在我选择的特定日期重新运行这笔钱。我认为这并不难,只需画一个空白即可。
答案 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