使用pandas修改数据帧的某些列

2024-04-24 11:18:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用熊猫,我需要修改一些列(产品列)应该有数字,但有些条目是空白或字母数字字符。我想将所有非数字项(包括空格和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) 

当我尝试运行这段代码时,仍然会得到Product列的NaN。我做错什么了?你知道吗


Tags: 代码namedate数字nanyeartrackerstage
1条回答
网友
1楼 · 发布于 2024-04-24 11:18:11

似乎您只需要重新分配给所选列的子数据帧:

cols = ['Product'+str(i) for i in range(1, 6)]

Tracker_final[cols] = Tracker_final[cols].apply(pd.to_numeric, errors='coerce').fillna(0)

如果这不起作用,请更新您的问题,包括复制您的问题的样本数据。你知道吗

相关问题 更多 >