【问题标题】:Adding values from a specified date range添加指定日期范围内的值
【发布时间】:2021-03-04 02:35:02
【问题描述】:

我有一个包含两列的 excel 文件:日期和值。

导入数据、指定日期范围并输出该日期范围的值总和的最佳方法是什么?

Example excel data

开始日期 = 23.09.2020

结束日期 = 26.09.2020

期望的输出: 197.03

【问题讨论】:

  • 请将示例数据添加到问题中以供将来参考,而不是发布指向外部来源的链接。在某些时候,链接可能会过期。

标签: python excel pandas


【解决方案1】:

假设您的数据 csv 如下所示: my_data.csv

Date,Value
01-02-2021 00:00:00,75.68
02-02-2021 00:00:00,84.73
03-02-2021 00:00:00,15.25
04-02-2021 00:00:00,20.00
05-02-2021 00:00:00,81.05

和处理它的代码:Python3.6 with pandas==1.1.4

import pandas as pd
from datetime import datetime

df = pd.read_csv('my_data.csv', encoding='utf-8', header=0)
df['Date'] = pd.to_datetime(df['Date'], format='%d-%m-%Y %H:%M:%S')

start_date = datetime.strptime("02.02.2021", "%d.%m.%Y")
end_date = datetime.strptime("03.02.2021", "%d.%m.%Y")

selected_df = df[(df['Date'] >= start_date) & (df['Date'] <= end_date)]
total = selected_df['Value'].sum()

print(selected_df)
print(total)

输出是:

        Date  Value
1 2021-02-02  84.73
2 2021-02-03  15.25
99.98

【讨论】:

    【解决方案2】:

    假设数据位于与图像格式相同的 Excel 文件中,包括第 2 行。

    import pandas as pd
    from datetime import datetime
    
    df = pd.read_excel('table.xlsx', header=0, parse_dates=True)
    df.drop(index=0,inplace=True)
    df['Date and time'] = pd.to_datetime(df['Date and time'], format='%d.%m.%Y')
    
    StartDate = datetime.strptime('23.09.2021', '%d.%m.%Y')
    
    EndDate = datetime.strptime('26.09.2021', '%d.%m.%Y')
    
    total_kWh = df[(df['Date and time']>=StartDate) & (df['Date and time']<=EndDate)]['Total system'].sum()
    
    print(total_kWh)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      相关资源
      最近更新 更多