熊猫-根据索引而不是索引替换值

Abh*_*rni 1 python dataframe pandas

这是示例代码。

import pandas as pd, numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(10, 1)), columns=list('A'))
Run Code Online (Sandbox Code Playgroud)

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

在list指定的索引位置,我希望A列为“是”。

以下代码有效

df.loc[dl,'A']='Yes'
Run Code Online (Sandbox Code Playgroud)

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

piR*_*red 5

np.where

我在做一个假设,有一个更好的办法做到既'Yes''No'在同一时间。如果您确实只想在'No'已经获得以后填写,'Yes'请参考Fatemehhh的答案

df.loc[:, 'A'] = np.where(df.index.isin(dl), 'Yes', 'No')
Run Code Online (Sandbox Code Playgroud)

实验部分

不代表实际建议

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
Run Code Online (Sandbox Code Playgroud)