Python中将列中的None值更改为字符串'None'

2024-06-02 06:21:26 发布

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

数据集中的某些列缺少表示为None(None类型,不是字符串)的值。其他一些缺少的值表示为“N/A”或“No”。我希望能够在下面的方法中处理这些丢失的值。在

df.loc[df.col1.isin('None', 'Yes', 'No'), col1] = 'N/A'

现在我的问题是,None是一个值而不是一个字符串,所以我不能用None作为'None'。我读过一篇文章,我们可以把none值转换成字符串'none'。在

有谁能告诉我怎么做吗?在

注1:

如果我运行以下代码,只是为了解释清楚:

^{pr2}$

我得到这个输出:

array([None, 'No', 'Yes'], dtype=object)

注2:

我知道我可以用isnull()来处理缺失值或无值,但在这种情况下,我需要使用.isin()方法

示例数据帧:

f = {'name': ['john', 'tom', None, 'rock', 'dick'], 'DoB': [None, '01/02/2012', '11/22/2014', '11/22/2014', '09/25/2016'], 'Address': ['NY', 'NJ', 'PA', 'NY', None]}
df1 = pd.DataFrame(data = f)

当您在下面的代码下运行时,您将看到None作为一个值。在

df1.Address.unique()
output: array(['NY', 'NJ', 'PA', None], dtype=object)

我希望“无”显示为“无”


Tags: 数据方法no字符串代码nonedfobject
2条回答

null/None'None'之间存在差异。所以你可以把你原来的陈述改成

df.loc[df.col1.isin([None, 'Yes', 'No']), col1] = 'N/A'

也就是说,去掉None的撇号

或者,您可以首先找到存在null或none的所有索引,然后根据索引选择所有这些行。然后你可以使用你原来的陈述。在

^{pr2}$

创建一个示例df:

df = pd.DataFrame({"A": [None, 'Yes', 'No', 1, 3, 5]})

看起来像:

^{pr2}$

将“None”替换为None,并将要替换的参数列为一个列表(isin就是这样工作的):

df.loc[df.A.isin([None, 'Yes', 'No']), 'A'] = 'N/A'

返回:

     A
0  N/A
1  N/A
2  N/A
3    1
4    3
5    5

相关问题 更多 >