CSV отчет и график
Erstellt am: 18. Januar 2025
Erstellt am: 18. Januar 2025
time,thought_data,action_data,boredom,interest,confusion,concentration
0.0,I didn't do a key.,,0.032501220703125,0.00470733642578125,0.113037109375,0.02197265625
напиши код на питоне который по данным из .csv файла с такой же структурой будет создавать текстовый файл с данными из таблицами и линейной диаграммой (ось X - time; ось Y boredom,interest,confusion,concentration). лучше всего чтобы это было красиво оформлено
Ниже приведён пример кода на Python, который:
time, thought_data, action_data, boredom, interest, confusion, concentration
).time
, а по оси Y — четыре метрики: boredom
, interest
, confusion
, concentration
.Код использует библиотеки pandas, prettytable и matplotlib.
Убедитесь, что эти библиотеки установлены (например, через pip install pandas prettytable matplotlib
).
pythonimport pandas as pd import matplotlib.pyplot as plt from prettytable import PrettyTable def create_report(input_csv: str, output_txt: str, output_chart: str): """ Считывает данные из CSV-файла, создает текстовый отчет с таблицей и строит линейную диаграмму по показателям boredom, interest, confusion, concentration. """ # 1. Читаем CSV в DataFrame df = pd.read_csv(input_csv) # 2. Создаем текстовую таблицу с помощью PrettyTable table = PrettyTable() table.field_names = df.columns.tolist() # Заголовки совпадают с названиями колонок # Добавляем строки в таблицу for row in df.itertuples(index=False): table.add_row(row) # 3. Сохраняем таблицу в текстовом файле with open(output_txt, 'w', encoding='utf-8') as f: f.write("Отчет по данным из файла: {}\n\n".format(input_csv)) f.write("Таблица значений:\n") f.write(str(table)) f.write("\n\n") f.write("Примечание: столбцы time, thought_data, action_data, boredom, interest, confusion, concentration\n") # 4. Строим линейную диаграмму plt.figure(figsize=(10, 6)) # Размер графика в дюймах plt.plot(df['time'], df['boredom'], label='boredom') plt.plot(df['time'], df['interest'], label='interest') plt.plot(df['time'], df['confusion'], label='confusion') plt.plot(df['time'], df['concentration'], label='concentration') plt.xlabel('Time') plt.ylabel('Value') plt.title('Динамика boredom, interest, confusion, concentration во времени') plt.legend() # Сохраняем график в файл (например, в PNG) plt.savefig(output_chart, dpi=300) plt.close() print(f"Отчет сохранён в файл: {output_txt}") print(f"График сохранён в файл: {output_chart}") def main(): # Задаём пути к файлам input_csv = 'data.csv' # Здесь укажите путь к вашему CSV-файлу output_txt = 'report.txt' # Туда будет сохранена текстовая таблица output_chart = 'chart.png' # Туда будет сохранён график # Создаем отчет create_report(input_csv, output_txt, output_chart) if __name__ == "__main__": main()
Как пользоваться:
data.csv
) в ту же папку, где лежит скрипт.input_csv
, output_txt
, output_chart
).python script.py
).report.txt
(текстовый отчёт с таблицей) и chart.png
(линейная диаграмма).При желании можно дополнительно улучшить оформление: добавить стили для таблицы, более детальное описание, комментарии к графику и т.д.