簡體   English   中英

Python:將read_csv轉換為dataframe-無法將對象轉換為float

[英]Python: read_csv into dataframe - can't convert object into float

我要送入read_csv的csv文件是幾列,它們具有百分比變化,但其中包含一些隱藏字符。 repr(data2)

在此處輸入圖片說明

我嘗試了以下方法:

data2 = pd.read_csv('C:/Users/nnayyar/Documents/MonteCarlo2.csv', "\n", delimiter = ",", dtype = float)

並得到以下錯誤:

ValueError: invalid literal for float(): 7.05%

我嘗試了幾件事:

float(data2.replace('/n',''))
map(float, data2.strip().split('\r\n'))

但是分別收到各種錯誤TypeError:float()參數必須是字符串或數字AttributeError:'DataFrame'對象沒有屬性'strip'

將CSV對象類型轉換為浮點類型的任何幫助都將有所幫助! 謝謝!!

如果您的整個csv具有百分號,則可以執行以下操作:

In [203]:
import pandas as pd
import io
t="""0   1   2  3
1.5%  2.5%   6.5%   0.5%"""
# load some dummy data
df = pd.read_csv(io.StringIO(t), delim_whitespace=True)
df

Out[203]:
      0     1     2     3
0  1.5%  2.5%  6.5%  0.5%

In [205]:
# apply a lambda that replaces the % signs and cast to float    
df.apply(lambda x: x.str.replace('%','')).astype(float)

Out[205]:
     0    1    2    3
0  1.5  2.5  6.5  0.5

因此,這會將lambda應用於調用向量化str.replace每個列以刪除%符號,然后我們可以使用astype將類型轉換為float

因此,在您的情況下,以下方法應該起作用:

data2 = pd.read_csv('C:/Users/nnayyar/Documents/MonteCarlo2.csv', "\n")
data2 = data2.apply(lambda x: x.str.replace('%', '').astype(float))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM