簡體   English   中英

Python:熊貓導致無效的比較類型

[英]Python: Pandas cause invalid type of comparison

我有兩種類型的錯誤數據需要更正。 一個是null,另一個是Nan。

 >>> df_new
          Volume Price   
Date
2017-01-01 500  760
2017-01-02 null 760
2017-01-03 50   770
2017-01-04 null 780

另一種是NaN

 >>> df_new
          Volume Price   
Date
2017-01-01 500  760
2017-01-02 NaN 760
2017-01-03 50  770
2017-01-04 NaN 780

如何將null和NaN數據都替換為0? 我的代碼可以為null或NaN,但是我不能同時為兩者工作

volume = df_new['Volume'] == 'null' or df_new['Volume'].isnull()
df_new.loc[volume,'Volume'] = 0
df_new.replace('null',np.NaN,inplace=True)
df_new.iloc[0].fillna(df_new.iloc[1].Open,inplace=True)

它返回錯誤

追溯(最近一次通話最后一次):文件“ /”,第1行,在文件“ /home/.local/lib/python2.7/site-packages/pandas/core/ops.py”中,行763,在包裝器res = na_op(值,其他)文件“ /home/.local/lib/python2.7/site-packages/pandas/core/ops.py”,行718,在na_op中引發TypeError(“無效類型比較”)TypeError:無效類型比較

如果volume = df_new['Volume'] == 'null'則該代碼將起作用,但這將無法糾正數據,因為它是NaN,並用0代替

replace用於替換null ,將fillna用於替換NaNNone

df['Volume'] = df['Volume'].replace('null', np.nan).fillna(0)

要么:

df['Volume'] = df['Volume'].replace('null', 0).fillna(0)

要檢測nullNaN添加| 對於按位or和括號:

volume = (df_new['Volume'] == 'null') | (df_new['Volume'].isnull())

暫無
暫無

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

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