creo un dataframe panda con un DatetimeIndex in questo modo:Quando tracciare dati dell'indice datetime, messo marcatori nella trama in giorni specifici (ad esempio, fine settimana)
import datetime
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# create datetime index and random data column
todays_date = datetime.datetime.now().date()
index = pd.date_range(todays_date-datetime.timedelta(10), periods=14, freq='D')
data = np.random.randint(1, 10, size=14)
columns = ['A']
df = pd.DataFrame(data, index=index, columns=columns)
# initialize new weekend column, then set all values to 'yes' where the index corresponds to a weekend day
df['weekend'] = 'no'
df.loc[(df.index.weekday == 5) | (df.index.weekday == 6), 'weekend'] = 'yes'
print(df)
che dà
A weekend
2014-10-13 7 no
2014-10-14 6 no
2014-10-15 7 no
2014-10-16 9 no
2014-10-17 4 no
2014-10-18 6 yes
2014-10-19 4 yes
2014-10-20 7 no
2014-10-21 8 no
2014-10-22 8 no
2014-10-23 1 no
2014-10-24 4 no
2014-10-25 3 yes
2014-10-26 8 yes
posso facilmente tracciare la A
colum con i panda facendo:
df.plot()
plt.show()
che traccia una linea delColonnama lascia fuori la colonna weekend
in quanto non contiene dati numerici.
Come faccio a mettere un "marker" su ogni punto della colonna A
dove la colonna weekend
ha il valore yes
?
Si potrebbe accorciare uno smidge con 'df ['A'] [df ['weekend'] == 'si']. Trama (style = 'ro')' che è un po 'più leggibile (IMO) ma ancora, bella auto-risposta. – Ffisegydd