2016-07-20 12 views
1

私はこれで取り残されています。私はnameのリストを得たいと思います。groupby().mean()の結果とpandas DataFrameのアプリケーションがあります。最も具体的には、私は["John", "Mary", "Suzan", "Eric"]を取得したいと思います。groupby()の後にインデックス値のリストを取得する方法。pandasのmean()?

 score 
name  
John 85.0 
Mary 86.5 
Suzan 90.0 
Eric 100.0 

上記の結果は、以下から来ている、meansです:

data = pandas.DataFrame({"name": names, "score": scores}) 
means = data.groupby("name").mean() 

今私はmeansを持っているように、私は'means' - ["John", "Mary", "Suzan", "Eric"]から名前のリストを取得したいと思います。これは達成可能ですか?

答えて

4

だけのインデックスを見て:

print (list(means.index)) 
['John', 'Mary', 'Suzan', 'Eric'] 

別のよりよい解決策は、Series.uniqueを使用してgroupbyを省略しています。 MultiIndexをお持ちの場合は、@ jezraelの回答get_level_valuesをご覧ください。

means.index.tolist() 
+0

ありがとう。 – achimneyswallow

+0

あなたは歓迎です:) – Alex

1

あなたは使用することができます:あなたはインデックスを持っている場合

print (data.name.unique()) 
['John' 'Mary' 'Suzan' 'Eric'] 
+0

ありがとうございます。これもエレガントです。 – achimneyswallow

+0

'unique()で解決するのはあなたにとっては良いことではありませんか? – jezrael

+0

それは素晴らしいですが、私の仕事は、さらなる操作のために、手段を避けて別のファイルにロードすることです。もし私が酸洗いをすることに割り当てられていなければ、ユニークな()は絶対的に良いです:)あなたの助けを大変ありがとうございます:) – achimneyswallow

関連する問題