Pandas:如何从索引列获取唯一值
您可以使用以下方法来获取pandas DataFrame的索引列的唯一值:
方法一:从索引列获取唯一值
df. index . single ()
方法2:从MultiIndex中的特定列获取唯一值
df. index . unique (' some_column ')
以下示例展示了如何在实践中使用此语法。
示例1:从索引列获取唯一值
假设我们有以下 pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]}, index = [0, 1, 1, 1, 2, 2, 3, 4]) #view DataFrame print (df) team points assists 0 to 18 5 1 B 22 7 1 C 19 7 1 D 14 9 2 E 14 12 2 F 11 9 3 G 20 9 4:28 4
我们可以使用以下语法来获取DataFrame的索引列的唯一值:
#get unique values from index column
df. index . single ()
Int64Index([0, 1, 2, 3, 4], dtype='int64')
输出显示索引列中的每个唯一值。
我们还可以使用len()函数来统计索引列中唯一值的数量:
#count number of unique values in index column
len ( df.index.unique ( ))
5
我们可以看到DataFrame的索引列中有5个唯一值。
示例2:从MultiIndex中的特定列获取唯一值
假设我们有以下 pandas DataFrame:
import pandas as pd #define index values index_names = pd. MultiIndex . from_tuples ([(' West ',' A '), (' West ', ' A '), (' West ', ' B '), (' East ', ' C '), (' East ', ' C '), (' East ', ' D ')], names=[' Division ', ' Team ']) #define data values data = {' Sales ': [12, 44, 29, 35, 44, 19]} #createDataFrame df = pd. DataFrame (data, index=index_names) #view DataFrame print (df) Sales Division Team West A 12 At 44 B29 East C 35 C 44 D 19
请注意,此 DataFrame 有一个 multiIndex。
我们可以使用以下语法来获取multiIndex的单个Team列的唯一值:
#get unique values from Team column in multiIndex
df. index . single (' Team ')
Index(['A', 'B', 'C', 'D'], dtype='object', name='Team')
输出显示 multiIndex 的Team列中的四个唯一值:A、B、C 和 D。
我们可以使用类似的语法从 multiIndex 的Division列中提取唯一值:
#get unique values from Division column in multiIndex
df. index . single (' Division ')
Index(['West', 'East'], dtype='object', name='Division')
输出显示了 multiIndex 的Division列的两个唯一值:West 和 East。
其他资源
以下教程解释了如何在 pandas 中执行其他常见功能: