亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

過濾熊貓中的列并轉換為浮點數

過濾熊貓中的列并轉換為浮點數

當年話下 2022-06-07 17:14:56
我有一個熊貓數據框,其中包含一些非常過濾的數據df['Q53']OUTPUT:0      Hvor mange timer tr?ner din virksomhed medarbe...3                                                    NaN4                                                    NaN5                                                    NaN6                                                      27                                                    NaN8                                                     109                                                    NaN10                                                    5011                                                   NaN12                                                     ?13                                                     ?14                                                     815                                                   NaN16                                                     217                                                     018                                                     119                                                     120                                                     521                                             7x3 timer22                                                   NaN23                                               8 timer24                                                   NaN25                                                     026                                                     827                                                   NaN現在的問題是,我只想將整數留在列中,然后將它們轉換為浮點數,這樣我就可以對列進行一些數據可視化。我想知道我是否可以做一些標準化的過濾,但我無法讓它工作。是否有一個操作,我可以過濾掉所有NaN和String值,只留下一個值,可以轉換成一個float或int
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

將值轉換為數值,然后刪除錯誤值:


df['Q53'] = pd.to_numeric(df['Q53'], errors='coerce')

df = df.dropna(subset=['Q53'])

print (df)

     Q53

6    2.0

8   10.0

10  50.0

14   8.0

16   2.0

17   0.0

18   1.0

19   1.0

20   5.0

25   0.0

26   8.0

編輯:我建議不要使用eval,這里是提取數字x之間的解決方案,轉換為浮點數和多個之間。


\d+然后用正則表達式中的模式提取并轉換為數字的所有數字替換缺失值。


最后通過以下方式刪除缺失值DataFrame.dropna:


dfx = df['Q53'].astype(str).str.extract('(\d+)x(\d+)').astype(float).prod(axis=1, min_count=1)


num = df['Q53'].astype(str).str.extract('(\d+)', expand=False)


df['Q53'] = dfx.fillna(pd.to_numeric(num, errors='coerce'))

df = df.dropna(subset=['Q53'])

print (df)

     Q53

6    2.0

8   10.0

10  50.0

14   8.0

16   2.0

17   0.0

18   1.0

19   1.0

20   5.0

21  21.0

23   8.0

25   0.0

26   8.0


查看完整回答
反對 回復 2022-06-07
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以檢查是否isdigit僅選擇True列。

df[df['Q53'].apply(lambda x: str(x).isdigit())]


查看完整回答
反對 回復 2022-06-07
  • 2 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號