将列中的无值更改为字符串';无';用Python

将列中的无值更改为字符串';无';用Python,python,pandas,missing-data,nonetype,Python,Pandas,Missing Data,Nonetype,我的数据集中的某些列缺少表示为None(非类型,不是字符串)的值。其他一些缺失值表示为“不适用”或“否”。我希望能够在下面的方法中处理这些缺少的值 df.loc[df.col1.isin('None', 'Yes', 'No'), col1] = 'N/A' 现在我的问题是,None是一个值而不是字符串,因此我不能将None用作“None”。我在某个地方读到过,我们可以将none值转换为字符串none 有人能告诉我怎么做吗 注1: 如果我运行以下代码,只是为了解释清楚: df.col1.uni

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

df.loc[df.col1.isin('None', 'Yes', 'No'), col1] = 'N/A'
现在我的问题是,None是一个值而不是字符串,因此我不能将None用作“None”。我在某个地方读到过,我们可以将none值转换为字符串none

有人能告诉我怎么做吗

注1:

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

df.col1.unique()
我得到这个输出:

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)

我希望None显示为“None”

空/None和
'None'
之间存在差异。因此,您可以将原始声明更改为

df.loc[df.col1.isin([None, 'Yes', 'No']), col1] = 'N/A'
也就是说,去掉
None

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

df["col1"].loc[df["col1"].isnull()] = 'None'
创建一个示例df:

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

     A
0  None
1   Yes
2    No
3     1
4     3
5     5
将“无”替换为“无”,并将要替换的参数列为一个列表(这就是isin的工作原理):

返回:

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

你能给出一个输入数据帧和你期望的输出吗?我试着回答你的问题,但不确定你真正需要什么。在我的帖子底部用示例数据框进行了更新。你能提供更多关于为什么要这样做的上下文吗?导出方法(例如,
df.to_csv
)具有
na_rep
参数,可以将所有空/缺失数据更改为所需的任何字符串。
     A
0  N/A
1  N/A
2  N/A
3    1
4    3
5    5