如何在Pandas DataFrame列中获取唯一值
时间:2020-02-23 14:42:04 来源:igfitidea点击:
在本教程中,我们将看到如何从Pandas DataFrame中的列中获取唯一值。
有时,我们可能希望从大Pandas DataFrame中的一列获取唯一值。
以下是我们将使用的示例员工数据。
| Name | Age | Department |
|---|---|---|
| Rohit | 26 | Sales |
| John | 21 | HR |
| Appy | 34 | Sales |
| Smita | 47 | Tech |
| Neha | 22 | HR |
使用unique()方法
你可以使用Pandas unique()从Pandas DataFrame中获取唯一值的方法。
这是一个例子。
我们将使用 unique()获得独特价值的方法 Department柱子。
import pandas as pd
emp_df = pd.DataFrame({'Name': ['Rohit','John','Appy','Smita','Neha'],
'Age': [26,21,34,47,22],
'Department':['Sales','HR','Sales','Tech','HR']})
print("-------Original Dataframe-------\n",emp_df)
# Get unique values using unique() method
deptUniq = emp_df.Department.unique()
print("-------Unique Department values-------\n",deptUniq)
print(type(deptUniq))
输出:
-------Original Dataframe------
Name Age Department
0 Rohit 26 Sales
1 John 21 HR
2 Appy 34 Sales
3 Smita 47 Tech
4 Neha 22 HR
-------Unique Department values------
['Sales' 'HR' 'Tech']
<class 'numpy.ndarray'>
正如我们所看到的,我们为部门列获得了唯一的值。
如果我们希望结果为列表,则可以使用Tolist()函数来转换 numpy.ndarray列出。
使用以下更改突出线路:
# Get unique values using unique() method
deptUniqList = emp_df.Department.unique().tolist()
print("-------Unique Department values-------\n",deptUniqList)
print(type(deptUniqList))
输出:
-------Original Dataframe------
Name Age Department
0 Rohit 26 Sales
1 John 21 HR
2 Appy 34 Sales
3 Smita 47 Tech
4 Neha 22 HR
-------Unique Department values------
['Sales', 'HR', 'Tech']
<class 'list'>
使用drop_duplicates()方法
你也可以使用 drop_duplicates()获取Pandas DataFrame中的列中的唯一值。
虽然与独特的方法相比,这种方法并不明显。
这是一个例子。
我们将使用 drop_duplicates()获得独特价值的方法 Department柱子。
import pandas as pd
emp_df = pd.DataFrame({'Name': ['Rohit','John','Appy','Smita','Neha'],
'Age': [26,21,34,47,22],
'Department':['Sales','HR','Sales','Tech','HR']})
print("-------Original Dataframe-------\n",emp_df)
# Get unique values using unique() method
deptUniq = emp_df.Department.drop_duplicates()
print("-------Unique Department values-------\n",deptUniq)
print(type(deptUniq))
输出:
-------Original Dataframe------
Name Age Department
0 Rohit 26 Sales
1 John 21 HR
2 Appy 34 Sales
3 Smita 47 Tech
4 Neha 22 HR
-------Unique Department values------
0 Sales
1 HR
3 Tech
Name: Department, dtype: object
<class 'pandas.core.series.Series'>

