私のデータフレーム内の各列の一意の値を探したいと思っています。 (全体のデータフレームのためのユニークな値)各列に一意の値を見つける
Col1 Col2 Col3
1 A A B
2 C A B
3 B B F
はのCol1は、一意の値としてCは、col2が何を持っていないとCOL3はF.
どれでも天才のアイデアを持っていますか?ありがとうございました !
私のデータフレーム内の各列の一意の値を探したいと思っています。 (全体のデータフレームのためのユニークな値)各列に一意の値を見つける
Col1 Col2 Col3
1 A A B
2 C A B
3 B B F
はのCol1は、一意の値としてCは、col2が何を持っていないとCOL3はF.
どれでも天才のアイデアを持っていますか?ありがとうございました !
それからdrop_duplicates
、Series
ためstack
を使用することができます - keep=False
はreset_index
と最後reindex
することにより、第1のレベルを削除し、すべてを削除:上記
df = df.stack()
.drop_duplicates(keep=False)
.reset_index(level=0, drop=True)
.reindex(index=df.columns)
print (df)
Col1 C
Col2 NaN
Col3 F
dtype: object
ソリューションは、列ごとに1つだけのユニークな値ならば素敵な作品。
私はより一般的なソリューションを作成してみてください。
print (df)
Col1 Col2 Col3
1 A A B
2 C A X
3 B B F
s = df.stack().drop_duplicates(keep=False).reset_index(level=0, drop=True)
print (s)
Col1 C
Col3 X
Col3 F
dtype: object
s = s.groupby(level=0).unique().reindex(index=df.columns)
print (s)
Col1 [C]
Col2 NaN
Col3 [X, F]
dtype: object
私は、これは正確に何をしたいであると考えていますがなどの有用な情報はありません - あなたがnumpyのの.unique()
ので、などを使用してデータフレームのためのユニークな値を見つけることができます:
>>> np.unique(df[['Col1', 'Col2', 'Col3']])
['A' 'B' 'C' 'F']
また、特定の列の一意の値を取得することもできます。 Col3
:
>>> df.Col3.unique()
['B' 'F']
効率性またはコードの優雅さを優先しますか?あなたのDataFrameはどれくらいの大きさですか? – ntg