Обновление от 22.05.1818: Ответ @aorr ниже исходного вопроса.
Я пытаюсь собрать каждый идентификатор и данные для этого идентификатора для тысяч входов.
Я пытаюсь собрать каждую строку отдельных идентификаторов, отсортировать даты, затем построить график для каждого идентификатора плюс данные и экспортировать диаграмму для каждого идентификатора.
Отредактировано Пример данных:
Имена столбцов: Id Date OG Company Date2
aab72ffd-4d0b-4c62-b6fe-4c55b98be9a0 3/1/1999 180,66 673 A 1/1/1996
- aab72ffd-4d0b-4c62-b6fe-4c55b98be9a0 3/1/1995 173,9 651 A 1/1 /1996
- a15961bc-0263-4c66-a825-1deb69bda8be 12/1/2010 55,14 542 C 1/1/2011
- a15961bc-0263-4c66-a825-1deb69bda8be 5/1/2012 49.24577 C 1/1/2011
- 10a1d17b-1f5c-4a4d-8186-e4dbf62e3bf2 12/1/2000 48,14 290 D 3/1/2002
10a1d17b-1f5c-4a4d-8186-e4dbf62e3bf2 3/1/2003 69.03 282,5 D 3/1/2002
Желаемые выходные массивы / диаграммы, но отсортированные по дате.
- 10a1d17b-1f5c-4a4d-8186-e4dbf62e3bf2 01.07.2005 28,24 327
- 10a1d17b-1f5c-4a4d-8186-e4dbf62e3bf2 10/1/1998 45,11 335
- 1a5d1e4dbf62e3bf2 01.07.2001 28,22 348
- 10a1d17b-1f5c-4a4d-8186-e4dbf62e3bf2 7/1/1997 44,53 350,5
- 10a1d17b-1f5c-4a4e4dbf62e3bf2 01.08.2001 28,4 333,5
- 10a1d17b-1f5c-4a4d-8186-e4dbf62e3bf2 01.10.2005 41,72 314
- 10a1d17b-1f5c-4a62f1f2f1f2f1f2f2f1f2f1f2f2f2f2f1f2f2f1d2f6f4d129.53 313.5
- 10a1d17b-1f5c-4a4d-8186-e4dbf62e3bf2 01.08.2002 43.24 319
Код, который я набрал до сих пор, успешно создает индексированный массив различных данныхтипы.Теперь я просто пытаюсь перебрать все строки и организовать данные так, чтобы они распечатывали / записывали отдельные массивы / диаграммы на основе идентификаторов.
Вот что у меня есть:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
#import data
mydataset = pd.read_csv('input_test.csv', dtype=None)
x = mydataset.iloc[:,:].values
y = mydataset.iloc[:,:].values
#Id
b = np.array((x[:,0]), dtype=str)
#Date
c = np.array((x[:,1]), dtype=str)
# O Var
d = np.array((x[:,2]), dtype=int)
# G var
e = np.array((x[:,3]), dtype=int)
#Stack
f = np.vstack((b,c,d,e))
#Transpose array
g = f.T
#Plot data
plt.figure()
plt.plot(x[:,2], y[:,3], label ='Rate over time')
plt.xlabel('m')
plt.ylabel('r/m')
#plt.legend()
Обновление на основе ответа @aorr: Спасибо за помощь нам, новички.
Это наносит на график как O, так и G на оси Y с Date на оси X для каждого Id .И все отсортировано по дате.Отличная отправная точка для расширения с этими данными.Еще больше подписок на основе обновлений.
for Id in data['Id'].unique():
fig, ax = plt.subplots(figsize=(5,3))
plot_data = data.query("Id==@Id").sort_values('Date')
_ = plot_data.plot(x='Date',y='O', ax=ax)
_ = plot_data.plot(x='Date', y='G', ax=ax)
#Plot Company name in each chart
for Company in plot_data[Company]:
_ = plt.title(Company)
#Plot Date2 Event onto X-axis
for Date2 in plot_data[Date2]:
_ = plt.axvline(Date2)