は、私は、次のシリーズ、dtype('O')
を持っていると言うメンバーシップを一覧表示するには:地図パンダシリーズは
s = pd.Series(list('abcde'))
そして次のリスト(グループ):
group1 = list('ab')
group2 = list('cd')
group3 = list('xy')
私は新しいへs
をマッピングしたいと思いますメンバーシップがない場合はnp.nan
で記入してください。結果:
res
Out[17]:
0 group1
1 group1
2 group2
3 group2
4 nan
dtype: object
私はnp.where
の繰り返しを使用するよりも、そうすることのより多くの神託の方法を探しています:
res = pd.Series(np.where(s.isin(group1), 'group1',
np.where(s.isin(group2), 'group2',
np.where(s.isin(group3), 'group3',
np.nan))))
理想的には、これがシングルとしてリストのコレクションを指定するような何かをやって意味します私の本当の問題はグループの数がはるかに多いためです。 res
は、dtype O
またはcategorical
とすることができます。
- 上記の例を動作しますが、過度に冗長です
np.where
、と私が試した何。
dict(zip(['group1', 'group2', 'group3'], [group1, group2, group3]))
を作成してください。そこにはまった。
これは重複している可能性がありますが、最初の試みでは見つかりませんでした。
注:の場合、グループリストは常に分離しています。
あなたのコメントに早く返信する機会がありませんでした。私はあなたの最善の策は最初にそのマッピングを構築することだと思うが、私はあなたがそれらのリストを取得しているか分からない。いずれにせよ、効率が問題であれば、受け入れられないように自由に感じてください。問題が解決されない場合、人々は代替案に取り組む可能性が非常に高い。 – ayhan