2017-07-10 7 views
-1

たちはCSVには、次のデータを含むファイルがあるだろう:Pythonのフィールド値に基づいて集計データが

Name Age Gender 
Bob  23 Male 
Ahmed 45 Male 
Alice 37 Female 
Ahmed 34 Male 
Mariyya 10 Female 
Bilal 23 Male 

私が行うことができますどのように次

  • は、それぞれの名前の発生の数をカウント
  • 頻度に基づいてフィールドを並べ、頻度を表示します。たとえば、Ahmedが最初に2回表示されます。 Maleが最初に4回来る必要があります。
  • 名前に基づいて注文し、結果にGenderと名前を組み合わせて表示します。

ご協力いただきありがとうございます。

+0

何あなたはこれを解決するために書いてありますか?ライブラリ(パンダなど)を使用していますか? – whrrgarbl

答えて

2

あなたはパンダを使用することができます。

import pandas as pd 
from io import StringIO 

csv_file = StringIO("""Name Age Gender 
Bob  23 Male 
Ahmed 45 Male 
Alice 37 Female 
Ahmed 34 Male 
Mariyya 10 Female 
Bilal 23 Male""") 

df = pd.read_csv(csv_file, sep="\s+",index_col=None) 

df['Name'].value_counts() 

出力:

Ahmed  2 
Mariyya 1 
Bilal  1 
Bob  1 
Alice  1 
Name: Name, dtype: int64 


df['Gender'].value_counts() 

出力:

Male  4 
Female 2 
Name: Gender, dtype: int64 

df.sort_values(by='Name') 

出力:

 Name Age Gender 
1 Ahmed 45 Male 
3 Ahmed 34 Male 
2 Alice 37 Female 
5 Bilal 23 Male 
0  Bob 23 Male 
4 Mariyya 10 Female 
+0

あなたの素敵な答えをありがとう。簡単な質問ですが、なぜStringIQの後に3つの二重引用符を使用しましたか? – Simplicity

+0

トリプルクォートのこの[discussion](https://stackoverflow.com/questions/10840357/string-literal-with-triple-quotes-in-function-definitions)を参照してください。改行を処理します。 –

関連する問題