Pau*_*tez 3 python indexing list filter pandas
想象一下,我有一个表示数据帧索引的列表,如下所示:
indexlist = [0,1,4]
Run Code Online (Sandbox Code Playgroud)
以及以下数据框:
Name Country
0 John BR
1 Peter BR
2 Paul BR
3 James CZ
4 Jonatan CZ
5 Maria DK
Run Code Online (Sandbox Code Playgroud)
我需要在此数据框上创建一个名为“Is it valid?”的列 如果索引行在列表中,则会添加“是”。否则将添加“否”,导致此数据框:
Name Country Is it valid?
0 John BR Yes
1 Peter BR Yes
2 Paul BR No
3 James CZ No
4 Jonatan CZ Yes
5 Maria DK No
Run Code Online (Sandbox Code Playgroud)
我有什么办法可以做到吗?
谢谢!
您可以将其用于isin通常与 Series 一起使用的索引,它本质上创建了一个真值数组,您可以将np.where真值和假值传递给该数组,将结果分配为一列。
df['Is it valid?'] = np.where(df.index.isin(indexlist), 'Yes', 'No')
Run Code Online (Sandbox Code Playgroud)
输出:
Name Country Is it valid?
0 John BR Yes
1 Peter BR Yes
2 Paul BR No
3 James CZ No
4 Jonatan CZ Yes
5 Maria DK No
Run Code Online (Sandbox Code Playgroud)