2016-05-19 18 views
0

のために4より大きいlenの場合、私は四半期ごとに各業界のためのデータポイントの数はここ4パンダ:中央ピボットテーブル

その後、小さければNSディスプレイを持ってしようとしているが、私のデータソースがある:

print df 

         IndustryGroup Year_ Quarter TotalRaisedUSD 
          Healthcare 2014_  1  79.30000 
        Consumer Services 2014_  1  111.25000 
       Information Technology 2014_  1  232.00000 
          Healthcare 2014_  1  113.90000 
          Healthcare 2014_  1  121.11000 
          Healthcare 2014_  1  108.76000 
          Healthcare 2014_  1  58.64000 
          Healthcare 2014_  1  120.07000 
          Healthcare 2014_  1  81.76000 
          Healthcare 2014_  1  28.40000 
          Healthcare 2014_  1  76.63000 
          Healthcare 2014_  1  74.96217 
          Healthcare 2014_  1  57.86000 
          Healthcare 2014_  1  220.23000 
           ...  ...   ...  ... 
          Healthcare 2014_  4  109.70000 
        Consumer Services 2014_  4  358.50000 
          Healthcare 2014_  4  115.00000 
       Information Technology 2014_  4  168.05000 
     Business and Financial Services 2014_  4  100.66000 
          Healthcare 2014_  4  72.09000 
          Healthcare 2014_  4  129.67000 
          Healthcare 2014_  4  151.00000 
          Healthcare 2014_  4  123.28000 
          Healthcare 2014_  4  153.85000 
     Business and Financial Services 2014_  4  47.41000 
          Healthcare 2014_  4  35.34000 
          Healthcare 2014_  4  206.50000 
          Healthcare 2014_  4  31.00000 
          Healthcare 2014_  4  68.09000 
          Healthcare 2014_  4  122.02000 
     Business and Financial Services 2014_  4  193.22000 
       Information Technology 2014_  4  254.34000 
       Information Technology 2014_  4  196.50000 


df1=pd.pivot_table(df,values='TotalRaisedUSD',index='IndustryGroup',columns=['Year_','Quarter'], np.median) 

私はすべてのアイデア

[108 rows x 4 columns] 
    Year_        2014_       
    Quarter        1  2  3  4 
    IndustryGroup             
    Business and Financial Services 49.73 71.275 38.00 100.66 
    Consumer Services    111.25 165.600 NaN 358.50 
    Healthcare      87.10 82.335 84.53 118.51 
    Industrial Goods and Materials  NaN 144.490 NaN  NaN 
    Information Technology   82.13 68.000 55.93 196.50 

(例えば情報技術2014_ 4は、NSが表示されます)同じDF1の出力を必要とするが、TotalRaisedUSDの数が4未満であれば、「NS」を表示しますか?

ありがとうございます!

+0

それはたとえばなしで伝えるのは難しいですが、あなたはhttp://stackoverflow.com/a/19385591/([これらの線]に沿って( 'groupby'を試みることができます5276797)など)。 – IanS

答えて

0

あなたはこれを達成するためにgroupbytransformを使用することができます。

grouped = df.groupby(['IndustryGroup','Year']) 

logic= lambda x: 'NS' if x.count() < 4 else '' 

transformed = grouped.transform(logic) 

私はこのような何かが動作するはずと信じています。

あなたがここでそれについて読むことができます。 http://pandas.pydata.org/pandas-docs/stable/groupby.html

+0

作品、ありがとうございました! – CyNe

+0

それから先に進み、答えを受け入れてください! – elelias

関連する問題