簡體   English   中英

如何用null替換pandas列中的特定字符?

[英]How to replace specific character in pandas column with null?

我在數據集中有一列關於分類公司規模的列,目前看起來像這樣,其中“-”連字符當前表示缺失的數據:

我想用空值更改缺失值中的“-”,以便我可以分析缺失的數據。 但是,當我使用帶有 None 值的 pd 替換工具(請參閱以下代碼)時,它似乎也會生成任何真正的條目,因為它們還包含連字符(例如 51-200)。

df['Company Size'].replace({'-': None},inplace =True, regex= True)

如何僅替換單獨的連字符並保持其他條目不變?

您不需要使用 regex=True。

df['Company Size'].replace({'-': None},inplace =True)

你可以這樣做

import numpy as np
import pandas as pd


df = pd.DataFrame({'A': [0, 1, 2, 3, 4],
                   'B': [5, 6, 7, 8, 9],
                   'C': ['a', '-', 'c--', 'd', 'e']})

df['C'] = df['C'].replace('-', np.nan)
df = df.where((pd.notnull(df)), None) 
# can also use this -> df['C'] = df['C'].where((pd.notnull(df)), None)

print(df)

輸出:

   A  B     C
0  0  5     a
1  1  6  None
2  2  7   c--
3  3  8     d
4  4  9     e

另一個例子:

df = pd.DataFrame({'A': [0, 1, 2, 3, 4],
                   'B': ['5-5', '-', 7, 8, 9],
                   'C': ['a', 'b', 'c--', 'd', 'e']})

df['B'] = df['B'].replace('-', np.nan)
df = df.where((pd.notnull(df)), None)
print(df)

輸出:

   A     B    C
0  0   5-5    a
1  1  None    b
2  2     7  c--
3  3     8    d
4  4     9    e

你也可以這樣做:

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

df.replace('-',np.NaN, inplace =True)

這段代碼對我有用。

暫無
暫無

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

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