从列中获取唯一值
In [15]: df = pd.DataFrame({"A":[1,1,2,3,1,1],"B":[5,4,3,4,6,7]})
In [21]: df
Out[21]:
A B
0 1 5
1 1 4
2 2 3
3 3 4
4 1 6
5 1 7
在 A 列和 B 列中获取唯一值
In [22]: df["A"].unique()
Out[22]: array([1, 2, 3])
In [23]: df["B"].unique()
Out[23]: array([5, 4, 3, 6, 7])
要将列 A 中的唯一值作为列表获取(请注意,unique()
可以以两种略有不同的方式使用)
In [24]: pd.unique(df['A']).tolist()
Out[24]: [1, 2, 3]
这是一个更复杂的例子。假设我们想要从’B’列中找到唯一值,其中’A’等于 1。
首先,让我们介绍一个副本,以便你可以看到它是如何工作的。让我们用 4 替换'4’行中的 6,‘B’列:
In [24]: df.loc['4', 'B'] = 4
Out[24]:
A B
0 1 5
1 1 4
2 2 3
3 3 4
4 1 4
5 1 7
现在选择数据:
In [25]: pd.unique(df[df['A'] == 1 ]['B']).tolist()
Out[25]: [5, 4, 7]
这可以通过首先考虑内部 DataFrame 来分解:
df['A'] == 1
这会在 A 列中查找等于 1 的值,并对它们应用 True 或 False。然后我们可以使用它来从 DataFrame 的列’B’中选择值(外部 DataFrame 选择)
为了比较,如果我们不使用 unique,这里是列表。它检索 B
列中 A
列为 1 的每个值
In [26]: df[df['A'] == 1]['B'].tolist()
Out[26]: [5, 4, 4, 7]