我正在使用熊貓閱讀一個充滿股票價格的 sql 表,但是在我的 python 代碼中使用它們時,我遇到了價格是物件型別的問題。在我的 sql 表中,我有一些我無法擺脫的 #N/A 值(我不想)。
我知道可以在我的代碼中為價格提供浮點型別,但是當我從 sql 服務器匯入它們時,我希望它們是浮點數。
我嘗試更改“,”分隔符并保留它,但我沒有得到結果。
感謝您的關注
import pandas as pd
import sqlite3
conn = sqlite3.connect('C:\\Users\\Desktop\\db.sqlite3')
df = pd.read_sql("SELECT replace(IndexLevel, ',', '.') AS prices, PriceDate FROM IndexLevel",
conn, parse_dates="PriceDate")
uj5u.com熱心網友回復:
您可以在提取列后對其進行轉換:
mapping = {'#N/A': np.nan, ',': '.'}
df['prices2'] = df['prices'].replace(mapping, regex=True).astype(float)
print(df)
# Output
prices prices2
0 #N/A NaN
1 1234,32 1234.32
2 5689,23 5689.23
uj5u.com熱心網友回復:
為了使列成為浮點型別,值必須是數字。因此,您必須首先擺脫 N/A 值,然后將該列轉換為浮點數。
# doesn't have to be 0, can be any value that works for your dataset
df['Price'] = df['Price'].fillna(0)
df['Price'] = df['Price'].astype('float64')
現在你的專欄是浮動的
uj5u.com熱心網友回復:
您可以在 pandas 中將 '#N/A' 轉換為空值。此外,在轉換為浮點值之前,您需要洗掉千位分隔符(例如“1,000”到“1000”)。
import numpy as np
df['prices'] = df['prices'].str.replace(',', '', regex=True).str.replace('#N/A', np.nan).astype('float')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/490796.html
