按日期时间对数据进行排序(python、django)

时间:2021-07-14 08:43:15

标签: python django pandas csv datetime

我正在尝试按日期对我的操作进行排序。数据由几列组成,类似于此处绘制的列:

<头>
公司 收入 日期时间
X 520305 03.06.2020 11:20:00
Y 480305 06.06.2020 13:20:00

以我的情况为例,如果用户输入的开始日期为 10.05.2020 00:00:00 到 05.06.2020 10:00:00。预期输出仅为 X。

我希望我说得清楚,如果我感到困惑,请提前道歉。

这是我目前所做的:

def home(request):
    if request.method == 'POST':
        file = request.FILES['myFile']
        csv = pd.read_csv(file)

        StartDate = request.POST.get('startdate')
        EndDate = request.POST.get('enddate')

        user_start = pd.to_datetime(StartDate)
        user_end = pd.to_datetime(EndDate)

        csv['Date'] = pd.to_datetime(csv['Date'], dayfirst=True)

        montant_init = csv.groupby("Initiateur")["Montant (centimes)"].sum()
        err_count = csv.groupby(['Résultat']).size()

        return render(request, "index.html", {'something': True, 'montant': montant_init, 'error': err_count})


html:

   {% if something %}

        <label for="startdate">Start Date (y.m.d h.m.s):</label>
        <input type="text" name="startdate"><br><br>
        <label for="enddate">End Date (y.m.d h.m.s):</label>
        <input type="text" name="enddate"><br><br>
        <input type="submit" name="submit">


        <p>{{ montant }}</p>
        <p>{{ error }}</p>

谢谢

1 个答案:

答案 0 :(得分:0)

在这些行之后

user_start = pd.to_datetime(StartDate)
user_end = pd.to_datetime(EndDate)
csv['Date'] = pd.to_datetime(csv['Date'], dayfirst=True)

您可以简单地选择您需要的数据

csv = csv[(csv['Date'] >= user_start) & (csv['Date'] <= user_end)]

然后你可以根据需要对数据进行分组