簡體   English   中英

用數字值和缺少的數據作為字符串讀取pandas colum

[英]read pandas colum with number values and missing data as string

我的數據框中有一個Id列,如下所示:

a = pandas.DataFrame([12673,44,847])

該數據缺少一些值。 如果我Keep_default_NA = True,則缺少的值將被NaN填充,並且數據將被讀取為float,因此值將更改為

12673.0 , 44.0, 847.0

這是不希望的(我想刪除NA值並轉換為str / obj,因為id可以是任何長度)。 如果我keep_default_NA = False,那么其他列(例如布爾值)都將成為對象,並且我必須比較字符串值以找出true / false值。

如果要使用NaN值,則必須有浮點數。 https://stackoverflow.com/a/38003951/3841261

使用“ keep_default_NA = True”,然后刪除NaN之后,將列轉換為整數。

如果沒有更好的數據樣本,我無法確定,但這也許會有所幫助:

首先,您讀取保留dtype的數據,然后基本上再次讀取它以獲得正確的id 如果您的布爾列也缺少值(空字符串),則需要使用df.astype("bool")這些行。

df1 = pd.read_csv("test.csv", keep_default_na=True).dropna()
df2 = pd.read_csv("test.csv", keep_default_na=False)
df1["id"] = df2.loc[df1.index]["id"]
df = pd.DataFrame(df1.to_dict())

如果您不想讀兩次,可以使用keep_default_na=False讀入,然后過濾出包含空字符串的行,並將每一列轉換為所需的df = pd.DataFrame(df1.to_dict())df = pd.DataFrame(df1.to_dict())

暫無
暫無

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

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