是否有一种简单的方法可以在数据框中提取不同的值组合?我已经将pd.Series.unique()用于单列,但是多列呢?
示例数据:
df = pd.DataFrame(data=[[1, 'a'], [2, 'a'], [3, 'b'], [3, 'b'], [1, 'b'], [1, 'b']],
columns=['number', 'letter'])
Expected output:
(1, a)
(2, a)
(3, b)
(1, b)
理想情况下,我喜欢具有不同值的元组的单独Series对象。
答案 0 :(得分:5)
IIUC,然后您可以将索引设置为这些列,然后在索引上调用unique
:
In [165]:
idx = df.set_index(['number','letter']).index
idx.unique()
Out[165]:
array([(1, 'a'), (2, 'a'), (3, 'b'), (1, 'b')], dtype=object)
答案 1 :(得分:2)
您可以压缩列并创建一个集:
>>> set(zip(df.number, df.letter))
{(1, 'a'), (1, 'b'), (2, 'a'), (3, 'b')}