Python 在列'中插入Null;A';基于索引值
我有一个索引号为“l1”的列表,我想根据这些索引号将列“a”中的值替换为NaN 当前数据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
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)