我正在使用Pandas,我需要修改一些列(产品列),这些列应该有数字,但有些条目是空白或字母数字字符。我希望将所有非数字条目(包括空格和NaN)转换为0。下面是我的代码(我正在使用spyder):
Tracker = tracker_master[['Name','Month','Year','Date','Owner',
'Account_Name','Opp','Proposed_Solution',
'Product1','Product2','Product3','Product4','Product5','Signed_Date','Stage','timestamp']]
Tracker_final = Tracker[(Tracker.Year==2018) & (Tracker.Month.isin(['April','May','June','July','August'])) &
(Tracker.Stage.isin(['Inked','Approved']))]
Tracker_final[['Product1','Product2','Product3','Product4','Product5']].apply(pd.to_numeric, errors='coerce').fillna(0)
Tracker_final.to_excel(r'W:\mydrive\B\TrackerFinal.xlsx', index=False) 当我尝试运行这段代码时,我仍然会得到产品列的NaN。我做错了什么?
发布于 2018-05-21 22:07:33
似乎您只需要将所选列的子数据分配回:
cols = ['Product'+str(i) for i in range(1, 6)]
Tracker_final[cols] = Tracker_final[cols].apply(pd.to_numeric, errors='coerce').fillna(0)如果这不起作用,请更新您的问题,以包括样本数据,复制您的问题。
https://stackoverflow.com/questions/50457149
复制相似问题