Создание фрейма данных с использованием входных переменных pandas - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь создать фрейм данных из переменных, которые могут вводить пользователи. Пользователь вводит дату начала и дату окончания, и программа ищет в файле .csv соответствующую дату. В файле .csv есть два столбца: timestamp и users_holding. Найдя дату, он берет данные за последнее время (например, 23:55) и возвращает их пользователю.

Я хочу, чтобы мой пользователь иметь возможность ввести дату начала и дату окончания и получить линейный график с соответствующими датами в качестве начала и окончания. Я планирую создать фрейм данных, используя переменные даты начала и даты окончания, введенные пользователем, но я не знаю, как это сделать.

Я считаю, что моя программа может успешно найти даты начала и окончания , Я борюсь с 1) установлением фрейма данных из начального и конечного значений и 2) использованием этого фрейма данных для создания линейного графика. Вот образец моего кода:

#date range input
start_date = input("Enter a start date (YYYY-MM_DD): ")
end_date = input("Enter an end date (YYYY-MM_DD): ")

#searching for start date
start_date_match = df[df['timestamp'].str.contains(start_date)]
maxvalues_start_date_match = start_date_match.max()

#searching for end date
end_date_match = df[df['timestamp'].str.contains(end_date)]
maxvalues_end_date_match = end_date_match.max()

#establish another dataframe composed of the date range
df_range = pd.DataFrame({"timestamp":[maxvalues_start_date_match, maxvalues_end_date_match], "users_holding":[maxvalues_start_date_match, maxvalues_end_date_match]})
print(df_range)

#graph the dataframe ranging from start to end date
df_range.plot(x='timestamp', y='users_holding', kind='line')
plt.show()

Любая помощь приветствуется

1 Ответ

0 голосов
/ 14 июля 2020

Если вы хотите построить график данных, библиотека визуализации Bokeh (https://bokeh.org/) - отличный и очень настраиваемый способ сделать это. Что касается вашего DataFrame, возможно, попробуйте использовать функцию pandas date_range для создания списка дат, а затем добавить его в DataFrame?

>>> import pandas as pd
>>> start_date='2020-07-01'
>>> end_date='2020-07-13'
>>> datelist=pd.date_range(start_date, end_date).tolist()
>>> df=pd.DataFrame()
>>> df['Dates']=datelist
>>> df
        Dates
0  2020-07-01
1  2020-07-02
2  2020-07-03
3  2020-07-04
4  2020-07-05
5  2020-07-06
6  2020-07-07
7  2020-07-08
8  2020-07-09
9  2020-07-10
10 2020-07-11
11 2020-07-12
12 2020-07-13

Если даты должны быть индексом DataFrame , pd.set_index('dates', inplace=true) можно использовать.

...