2017-09-11 13 views
-1

私はスポーツ名とスポーツの名前が利用可能なスポーツコラムを含む1つのExcel文書を持っています。私がスポーツ名をクリックした場合、スポーツ人物の名前は消えます。つまり、スポーツ人物の名前はスポーツ名の子供です。python pandasのExcel文書からピボットテーブルを読み取るにはどうすればいいですか?

以下のデータを見てください:私はクリケットをクリックした場合は、ラメシュ enter image description here

、スレシュ、マヘシュ名はすなわちクリケットは、ラメシュの親である消えている、同じサッカーなどのスレシュとマヘシュはパンカジの親であります、リャンシュ、スラジ。

私はこの優れたドキュメントを読み、python pandas Dataframeで変換したいと考えています。私はpandas pivot_tableとそれを読むことを試みたが、私はどんな成功も得ていない。

このExcelシートを読み込み、データフレームに変換しようとしました。

df = pd.read_excel("sports.xlsx",skiprows=7,header=0) 
d = pd.pivot_table(df,index=["sports"]) 
print d 

しかし、私は、私はスポーツの名によってそれを分割したい、それが対応するスポーツ人物名だ1列にすべてのスポーツの値を取得しています。

予想される出力:

sports_name player_name age address 
cricket  ramesh  20 aaa 
cricket  suresh  21 bbb 
cricket  mahesh  22 ccc 
football pankaj  24 eee 
football riyansh  25 fff 
football suraj   26 ggg 
basketball rajesh  28 iii 
basketball abhijeet  29 jjj 
+2

を使用して交換するNaNを含んでいるあなたは、何かをしようとしたが、それは動作しませんでしたか?何を試しましたか?何が悪かったのか? – khelwood

+0

これはピボットよりもひどくフォーマットされたテーブルに似ています。あなたのフットボール「年齢」は23歳です... – zipa

答えて

0

pandas.pivot_tableは、データ分析を支援するためにそこにあるとは、Excelのピボットテーブルを読み取ることがない、Excelに似たピボットテーブルを作成するのに役立ちます。

スプレッドシート形式のピボットテーブルをDataFrameとして作成します。ピボットテーブル内のレベルは、私は、問題であなたを助けるためにドキュメント

>>> df 
    A B C  D 
0 foo one small 1 
1 foo one large 2 
2 foo one large 2 
3 foo two small 3 
4 foo two small 3 
5 bar one large 4 
6 bar one small 5 
7 bar two small 6 
8 bar two large 7 


>>> table = pivot_table(df, values='D', index=['A', 'B'], 
...      columns=['C'], aggfunc=np.sum) 
>>> table 
      small large 
foo one 1  4 
    two 6  NaN 
bar one 5  4 
    two 6  7 

から結果DATAFRAME

例のインデックスと列にマルチインデックスのオブジェクト(階層インデックス)に格納されますサンプルデータセットとピボットテーブルを作成しました。

次に、Excelシートをpandasデータフレームに読み込みます。このデータフレームは、df.fillna(method='ffill')

enter image description here

df = pd.read_excel(pviotfile,skiprows=12,header=0) 
df=df.fillna(method='ffill') 
print (df) 

出力

 Sports  Name Address Age 
0 basketball Abhijit 129 ABC 20 
1 basketball Rajesh 128 ABC 20 
2  Cricket Mahesh 123 ABC 20 
3  Cricket Ramesh 126 ABC 20 
4  Cricket Suresh 124 ABC 20 
5 Football Riyash 125 ABC 20 
6 Football suraj 127 ABC 20 
関連する問題