Я изучаю библиотеку pandas. Моя задача - скачать таблицу с сайта, преобразовать и отправить в базу данных - в данном случае в ms-доступ. Я загружаю данные в свой DataFrame.
Моя проблема в том, что выбранная таблица в одном из столбцов (относительно цен) имеет значение '-'. В поисках информации о том, как с этим справиться, я обнаружил 3 основных возможности:
- Использование 'заменить' символ '-' на 0. Однако это решение не соответствует моим ожиданиям, потому что значение '-' означает нет данных и не его значение равное 0.
- Замена символа '-' пустой строкой - это решение не пройдет, потому что после изменений столбец имеет тип данных - float.
- Заменить '-' на NaN с помощью - .replace ('-', np.nan) - Эта возможность наиболее близка к решению моей проблемы, но после загрузки данных в доступ с помощью библиотеки «pyodb c» замененный записи имеют значение «1, # QNAN». Я держу пари, что такой формат принимает доступ для типа NaN, но проблема возникает, когда я хотел бы получить среднее значение из столбца, используя SQL:
sql SELECT AVG (nameColumns) FROM nameTable name
возвращает 'Overflow 'message.
Кто-нибудь знает, что делать с' - '? Есть ли способ, чтобы поле numeri c после загрузки было просто пустым?
EDIT - дополнительный код:
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=PathToDB;')
cursor = conn.cursor()
for index,row in df.iterrows():
cursor.execute("INSERT INTO tableName(col1,col2,col3) VALUES (?,?,?)",
row['col1'], row['col2'],row['col3'])
conn.commit()
cursor.close()
conn.close()
EDIT 2 - дополнительный код
import pandas as pd
d ={'col1': [1,2,'-'],'col2':[5,'-',3]}
dfstack = pd.DataFrame(data=d)
dfstack.head()
dfstack = dfstack.replace("-",None)
dfstack.head()