2017-09-11 6 views
3

Iターンでの書式Float64Index

def create_output_from_subset(analysis_type): 
    unique_customers_subset = df.groupby('År')['Kundenavn'].nunique().to_frame() 
    analyses_count_subset = df.groupby('År')['Kundenavn'].count().to_frame() 
    output_subset = pd.merge(unique_customers_subset, analyses_count_subset, left_index = True, right_index = True) 
return output_subset 
コラム「AR」(年ノルウェー)(2011、2012、2013など)によってグループ化されているDFSにマージしてDFを作成するために、次のコードを持っています

呼び出される関数は、以下を返す:

 Customers Analyses 
År       
2011.0   46  59 
2012.0   80  156 
2013.0   76  148 
2014.0   69  108 
2015.0   39  82 
2016.0   42  90 
2017.0   23  36 

年指数(År)は1つの小数を示すFloat64Indexとしてフォーマットされます。 int(小数点なし)として表示する方法はありますか?

答えて

3

を:

df.index = df.index.astype(int) 

しかし、インデックス内のいくつかのNaNの値が可能でない場合。

は、いくつかのintによってそれらを交換してから変換する必要がある:

df = pd.DataFrame({'a':[1,2,3]}, index=[2011,2012,np.nan]) 
print (df) 
     a 
2011.0 1 
2012.0 2 
NaN  3 

df.index = df.index.fillna(1970).astype(int) 
print (df) 
     a 
2011 1 
2012 2 
1970 3 

それとも最初のNaNを持つ行を削除します。上の

df = df[df.index.notnull()] 
df.index = df.index.astype(int) 
print (df) 
     a 
2011 1 
2012 2 
+0

優れています。どうもありがとう! – abergem

1

次のコード試すことができます:あなたはindex.astypeを使用することができます

df.index = df.index.map(lambda x : int(x)) 
+0

スポット!どうもありがとう! – abergem