2016-11-18 4 views
2

J'ai un ensemble d'horodatages pour les flux Twitter et leurs valeurs de sentiment de sortie respectives stockées dans un fichier csv. Je dois agréger la valeur du sentiment par rapport à des périodes de 6 heures et tracer un graphique de séries chronologiques. S'il vous plaît, aidez, j'essaie de le faire en utilisant resample() dans les pandas.Tracé de graphique TimeSeries pour la sortie Sentiment Analysis à l'aide de resample() python

Sat Oct 01 00:43:02 +0000 2016,-0.5 
Sat Oct 01 00:43:18 +0000 2016,0 
Sat Oct 01 00:43:41 +0000 2016,-1 
Sat Oct 01 00:43:54 +0000 2016,-0.5 
Sat Oct 01 00:43:56 +0000 2016,-0.5 

df = pd.read_csv('dataset.csv', names=['date', 'score'], index_col=['date'],parse_dates=['date'])

Répondre

1

Vous pouvez utiliser rolling pour ce cas d'utilisation, consultez la documentation here. Vérifiez également le dedicated documentation pour plus de détails sur le rééchantillonnage par rapport au roulement.

import io 
import pandas as pd 

# Some test data 
zz = """date, value 
"Sat Oct 01 00:43:02 +0000 2016",-0.5 
"Sat Oct 01 05:43:18 +0000 2016",0 
"Sat Oct 01 11:43:41 +0000 2016",-1 
"Sat Oct 01 20:43:54 +0000 2016",-0.5 
"Sat Oct 01 23:43:56 +0000 2016",-0.5 
""" 

# Preparing the data Frame 
df = pd.read_table(io.StringIO(zz), delimiter=',') 
df['date'] = pd.to_datetime(df['date']) 
df.set_index('date', inplace=True) 

# Resampling with rolling window with a mean 
df.rolling('6H').mean().plot() 

enter image description here

Remarques

  • La liste des décalages qui peuvent être utilisés pour la taille de la fenêtre de roulement est donnée dans this page.
  • J'ai utilisé la dernière API, des méthodes précédemment dédiées doivent être utilisées pour chaque statistique, par exemple rolling_mean pour la moyenne.