【问题标题】:Python replace string in pandas data frame with NaN [closed]Python用NaN替换熊猫数据框中的字符串[关闭]
【发布时间】:2020-12-20 10:11:51
【问题描述】:

如何将列中的“-”字段替换为零 (0) 或 Nan

Nigeria COVID-19 Cases

【问题讨论】:

标签: python pandas csv replace nan


【解决方案1】:

执行pip install openpyxl 然后获取工作簿并找到工作表,选择所有单元格并将具有 - 的单元格替换为 0。这可行,我已经用这里的文档对其进行了测试。希望这能解决您的问题。您应该将“replace.xlsx”更改为您的文档名称。

import openpyxl

#open workbook
wb = openpyxl.load_workbook("replace.xlsx") #ensure you change this

#select worksheet
sheet = wb['Sheet1']
#choose fields
chosen_field = sheet
for rowOfCellObjects in chosen_field: # loop over every rows
    for cellObj in rowOfCellObjects:  #loop every cells in one row
        print(cellObj.value)
        if cellObj.value == "-":
            cellObj.value =  0
        print(cellObj.coordinate, cellObj.value)
wb.save('replace.xlsx') #ensure you change this

【讨论】:

    【解决方案2】:

    如果您有一个小的 Excel 文件,只需打开它并在文件中手动替换它。

    如果你想使用 Python,那么你可以试试这个。

    df['column_name'] = df['column_name'].str.replace('-', 0)
    

    【讨论】:

    • 太棒了! :) 那你能把它标记为正确答案吗?
    【解决方案3】:

    使用replace()方法将-替换为numpy的nan

    import numpy as np
    import pandas as pd
    
    lst = ['-', 'For', '-', 'is',
           'portal', 'for', '-']
    
    VALUE_TO_REPLACE       = '-'
    TARGET_REPLACED_VALUE  = np.NaN # Or either 0
    
    df = pd.DataFrame(lst)
    
    df = df.replace([VALUE_TO_REPLACE], TARGET_REPLACED_VALUE)
    
    print(df)
    

    【讨论】:

      猜你喜欢
      • 2019-05-09
      • 2018-03-25
      • 2021-09-07
      • 2018-08-01
      • 2015-08-04
      • 2014-07-07
      • 2022-10-13
      • 2017-09-09
      相关资源
      最近更新 更多