У меня есть два кода, которые подробно описаны ниже.
Код 1: считывает CSV-файл, содержащий метку времени в виде одного столбца и соответствующие значения для каждой метки времени в качестве другого столбца.
Код 2: считывает базу данных и извлекает данные из базы данных, имеющей два столбца - метку времени в виде одного столбца и соответствующие значения для каждой метки времени в качестве другого столбца.
Для кода 1, когда я пытаюсь получить доступ / напечатать значение, соответствующее метке времени, он печатает одно значение numpy.float64. Я хочу, чтобы мой вывод был таким.
Однако для кода 2, когда я пытаюсь напечатать значение, соответствующее метке времени, он печатает серию, имеющую одно значение типа объекта.
Почему есть разница и что может быть причиной разницы в выходных данных, даже если технически оба являются фреймами данных? Как мне исправить эту проблему?
Попробовал следующее:
- Преобразовал тип объекта в numpy.float64. Все еще возвращает серию.
Считайте базу данных, конвертируйте ее в формат .csv, снова прочитайте файл .csv и попытайтесь получить доступ. Все еще возвращает серию.
from_db = MySQLdb.connect("xx.xx.xx.xx", "abcde", "12345", "TABLE_DB")
sql = "SELECT * FROM `SOME_TABLE` WHERE `THIS IS` = '123456'"
dmd_data = pd.read_sql(sql, con=from_db)
dmd_data = dmd_data.NAME
start_tstamp = '2016-10-08 00:00:00'
start = datetime.datetime.strptime(start_tstamp,f)
fact1 = (start-datetime.timedelta(days=1)).strftime(f)
Ожидаемый результат:
In [53]: dmd_data[fact1]
Out[53]: 4454.82406196
In [67]: type(dmd_data[fact1])
Out[67]: numpy.float64
Вывод, который я получаю:
In [53]: dmd_data[fact1]
Out[53]:
TIMESTAMP
2016-10-07 4454.82406196
Name: DEMAND, dtype: object
In [60]: type(data[fact1])
Out[60]: pandas.core.series.Series