Member 13647869 Ответов: 0

Как построить первые два столбца из csv-файла?


У меня есть csv-файл, который содержит следующее: дату публикации твита, значение настроения (0=отрицательное и 1=положительное), а затем твит в третьем столбце, все разделенные запятыми.

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

Date,SA,Tweet,
2009-06-11,0,  No Post Title,
 
2009-06-11,0,  No Post Title,
 
2009-06-11,0,  No Post Title,
 
2009-06-11,0,  No Post Title,
 
2009-06-11,0,  No Post Title,
 
2009-06-11,0,  No Post Title,
 
2009-06-11,0,  No Post Title,
 
2009-06-11,0,  No Post Title,
 
2009-06-12,0,  No Post Title,
 
2009-06-12,0,  No Post Title,
 
2009-06-12,0,  No Post Title,
 
2009-06-12,0,  No Post Title,


Что я уже пробовал:

Я искал много сайтов и запускал много кодов, но ничего не работает.
Я думал использовать временные ряды, но не знаю правильного способа
Пример кода, который я использовал(что, я уверен, неверно):


import pandas as pd
import plot_utils as pu
df = pd.read_csv('SA.csv', index_col=0)
pu.plot_timeseries(df['SA'], ylabel='Unit: %', title='Sentiment anaylsis variation')



Я получаю эту ошибку:
ValueError: Unknown string format


и пустой график

Я следил за следующим постом:
https://github.com/jsh9/python-plot-utilities

V.

вы пробовали проверить и исправить неверные данные? Это может быть, что дата имеет неправильный формат или что колонна СА содержит нечисловые значения.
Также проверьте значение df.dtypes. Дата-время, вероятно, будет прочитана как строка (=тип объекта в pandas). Я предполагаю, что вам нужно изменить это, чтобы ввести datetime. (см. страницы панд о том, как это сделать)

Richard MacCutchan

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

Member 13647869

Первые две колонки, которые я строю, числовые. Вы, ребята, имеете в виду, что я должен изменить дату с 2009-06-11 на другой формат? Второй столбец равен 1 и 0 так что он уже находится в числовой форме

V.

Нет, мы говорим о том, что, хотя это может выглядеть как свидание для вас, панды, вероятно, видят его как строку. Вы проверили dtypes таблицы данных по недвижимости после того, как Вы читаете файл CSV? Держу пари, что он говорит "объект" для первого столбца, который в основном рассматривается как строка. Преобразуйте его в datetime, который также предоставляет pandas, и снова проверьте dtypes. он должен читать что-то вроде "дата-время".
Проверьте документацию pandas: http://pandas.pydata.org/pandas-docs/stable/

PS: то же самое для второго столбца, убедитесь, что он числовой

Richard MacCutchan

Как я уже сказал, проверьте документацию, чтобы увидеть, в какой форме должны быть данные.

Member 13647869

хорошо,я получил этот " класс 'str'". Есть идеи, как я могу изменить значение настроения на целое число, а дату-на метку времени?

Richard MacCutchan

Используйте функцию int, как описано в разделе 2. встроенные функции — документация Python 3.3.7[^] для сантиментов. Используйте strptime, как описано в разделе 8.1. datetime — основные типы дат и времени — документация Python 3.6.6rc1[^]. Вы можете использовать Google для поиска документированных функций.

0 Ответов