जब मैंपांडा को समायोजित करें read_sql_query NULL मूल्य उपचार?
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('sqlite://')
conn = engine.connect()
conn.execute("create table test (a float)")
for _ in range(5):
conn.execute("insert into test values (NULL)")
df = pd.read_sql_query("select * from test", engine)
#df = pd.read_sql_table("test", engine)
df.a
कर परिणाम के रूप में करने का विरोध किया float("nan")
None
मूल्यों का एक स्तंभ है। यह बहुत परेशान है अगर विशेष रूप से यदि आप नल मूल्यों के साथ फ्लोट कॉलम पढ़ते हैं तो खंड-वार।
read_sql_table
संस्करण ठीक काम करता है, क्योंकि मुझे लगता है कि यह प्रकार की जानकारी का उपयोग कर सकता है।
क्या read_sql_query
को NULL
मानों को float("nan")
के रूप में भी समझने का एक आसान तरीका है?
मुझे डर है कि कोई आसान तरीका नहीं है। पांडस सभी नॉनों को परिवर्तित नहीं करता है (उदाहरण के लिए 'पीडी.रीरीज़ ([कोई नहीं, कोई नहीं])' आपको कोई मूल्य नहीं देता है और नाएन नहीं) लेकिन उन्हें ऑब्जेक्ट के रूप में रखता है, और 'read_sql_query' कभी नहीं जानता कि इसे फ़्लोट किया जाना चाहिए। यदि * आप * यह जानते हैं कि कौन से स्तंभों को फ़्लोट करना है, तो आप उस कॉलम पर 'df [' a '] कर सकते हैं। Astype (float)'। – joris
लेकिन मैं मानता हूं कि यह एक समस्या है। किसी निश्चित कॉलम के प्रकार को निर्दिष्ट करने के लिए एक संभावित कीवर्ड तर्क (जैसे 'read_csv' में 'dtype') शायद यहां उपयोगी हो सकता है। आप https://github.com/pydata/pandas/issues – joris
या एक 'कन्वर्टर्स' पैरामीटर पर भी एक मुद्दा खोल सकते हैं, जैसे कि 'read_csv', यदि संभव हो तो – vmg