Python 在列'中插入Null;A';基于索引值

Python 在列'中插入Null;A';基于索引值,python,pandas,Python,Pandas,我有一个索引号为“l1”的列表,我想根据这些索引号将列“a”中的值替换为NaN 当前数据 Index A 0 Reviewer: Newbie | 35-44 on Treatment for 1 1 Reviewer: 45-54 on Treatment for less than 1 2 Reviewer: Ocetech| 65-74 Male on Treatment 3 Reviewer: v

我有一个索引号为“l1”的列表,我想根据这些索引号将列“a”中的值替换为NaN

当前数据

Index                A
0        Reviewer: Newbie | 35-44 on Treatment for 1 
1        Reviewer: 45-54 on Treatment for less than 1 
2        Reviewer: Ocetech| 65-74 Male on Treatment 
3        Reviewer: virleo| 55-64 Female on Treatment 
4        Reviewer: Diane perrin| 65-74 on Treatment for
l1=[1,3,4]

预期产量

Index                A
0        Reviewer: Newbie | 35-44 on Treatment for 1 
1        NaN 
2        Reviewer: Ocetech| 65-74 Male on Treatment 
3        NaN
4        NaN

使用
.loc
定位数据帧中l1中的索引,然后分配
np.nan
如下:

import numpy as np
df.loc[l1,'A'] = np.nan

在复制数据帧后,只需查看详细信息

同时导入numpy以将
Nan
值设置为所需索引

import pandas as pd
import numpy as np
您的数据帧:

$ df
                                                A
0     Reviewer: Newbie | 35-44 on Treatment for 1
1    Reviewer: 45-54 on Treatment for less than 1
2      Reviewer: Ocetech| 65-74 Male on Treatment
3     Reviewer: virleo| 55-64 Female on Treatment
4  Reviewer: Diane perrin| 65-74 on Treatment for
您的索引列表:

$ l1
[1, 3, 4]
基于列
a
loc
,使用Numpy将索引设置为
Nan

df.loc[l1,'A'] = np.nan
结果:

print(df)
                                             A
0  Reviewer: Newbie | 35-44 on Treatment for 1
1                                          NaN
2   Reviewer: Ocetech| 65-74 Male on Treatment
3                                          NaN
4                                          NaN
如果您没有要替换为
NaN
的索引的长列表,您可以直接指定它们,而不是传递列表索引

$ df.loc[[1,3,4],'A'] = np.nan
$ print(df)
                                             A
0  Reviewer: Newbie | 35-44 on Treatment for 1
1                                          NaN
2   Reviewer: Ocetech| 65-74 Male on Treatment
3                                          NaN
4                                          NaN
另一种方法是:
使用
df.loc[l1,'A']=np.nan
$ df.rename(index={1:np.nan, 3:np.nan, 4:np.nan}, inplace=True)