我正在尝试按日期对我的操作进行排序。数据由几列组成,类似于此处绘制的列:
公司 | 收入 | 日期时间 |
---|---|---|
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>
谢谢
答案 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)]
然后你可以根据需要对数据进行分组