【问题标题】:Modify some columns of a dataframe with pandas使用 pandas 修改数据框的某些列
【发布时间】:2018-05-22 14:47:00
【问题描述】:

我正在使用 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) 

当我尝试运行此代码时,我仍然得到 Product 列的 NaN。我做错了什么?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    看来您只需要分配回所选列的子数据框:

    cols = ['Product'+str(i) for i in range(1, 6)]
    
    Tracker_final[cols] = Tracker_final[cols].apply(pd.to_numeric, errors='coerce').fillna(0)
    

    如果这不起作用,请更新您的问题以包含复制您的问题的示例数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-22
      • 2019-04-19
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多