使用python中的pandas模組時,怎樣只對其中的浮點數求和,而忽略掉其中的字串呢?

時間 2021-06-12 01:02:18

1樓:黃寶臣

df['a'].

(lambdax:

0iftype(x

)isstrelsex)

.sum

()先用if語句判斷是否是str型別,是的話轉成0就行了,最後運算。

2樓:本圖希

假設你的資料集,是某一列中存在混合型別的資料,那麼我們要做的就是把能夠進行浮點轉換的數挑出來的過程。將乙個「對應位置為True or False來表示原位置是否為浮點」的陣列傳遞給df進行篩選,是df中進行篩選的最高效的辦法。

所以我們要做的就是先生成這個布林陣列。

假設有df = pd.DataFrame()

顯然,a所在的列有乙個字元'b'混在裡面,直接執行 df['a'].astype('float32')會報錯。

defjudge(x

):try

:float(x

)return

True

except

ValueError

:return

Falsedf=

df.loc[df[

'a'].(

lambdax:

judge(x

))]df

.loc

[:,'a'].

sum()

我們先實現乙個函式,用來判斷這個位置能不能執行 float()函式,如果成功/失敗,就返回True/False

將這個函式應用到我感興趣的列,會得到乙個Boolean陣列,類似[False, True, True]。將這個Boolean陣列傳遞給df之後,實際上只有True的位置的資料能夠保留下來

於是自然就得到了你想要的篩選效果。

之後再求和應該很簡單,就不多說了。

如何使用python中timedelta這個類實現月份的累加。

首先這個問題用timedelta沒有直接的實現方法,給你兩個造好的輪子,你看哪個爽用哪個 import datetime z datetime.datetime 2016,12,17 1.import dateutil z dateutil.relativedelta.relativedelta m...

Python中的print函式怎麼使用?

隨風潛夜 print 函式是最常見的乙個函式,用於輸出列印資料 print 在 Python3.x 是乙個函式,但在 Python2.x 版本不是乙個函式,只是乙個關鍵字。具體使用語法 print objects,sep end n file sys.stdout,flush False objec...

Python中BytesIO的使用場景,什麼時間應該使用BytesIO?

lxkaka 列舉一種場景,把資料寫入檔案再上傳到儲存服務比如阿里雲OSS,aws的S3,這個時候可以用ByetesIO來讀寫資料。 黃哥 Python 3 中字串是str型別,記憶體讀寫字串用StringIO。記憶體讀寫bytes 用BytesIO。bytes 和str 轉換用encode 和de...