如何在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'>