Skip to main content
 首页 » 编程设计

python之Pandas之根据索引而不是索引替换值

2025年05月04日14lonelyxmas

这是示例代码。

import pandas as pd, numpy as np 
 
df = pd.DataFrame(np.random.randint(0,100,size=(10, 1)), columns=list('A')) 

我有一个列表 dl=[0,2,3,4,7]

在列表指定的索引位置,我希望A列为"is"。

下面的代码有效

df.loc[dl,'A']='Yes' 

对于不在索引中的列值,如何用“否”填充列“A”。 如果这是重复的帖子,请原谅我。

请您参考如下方法:

np.where

我假设有更好的方法可以同时执行 'Yes' 和 'No'。如果您真的只想在得到'Yes' 后填写'No',请参阅Fatemehhh的回答

df.loc[:, 'A'] = np.where(df.index.isin(dl), 'Yes', 'No') 

实验部分

不代表实际建议

f = dl.__contains__ 
g = ['No', 'Yes'].__getitem__ 
df.loc[:, 'A'] = [*map(g, map(f, df.index))] 
 
df 
 
     A 
0  Yes 
1   No 
2  Yes 
3  Yes 
4  Yes 
5   No 
6   No 
7  Yes 
8   No 
9   No