2017-08-31 17 views
0

のは、私は以下のパンダのデータフレームを持っているとしましょう:フォーマットの小数

df = pd.DataFrame({'name': ['Johnny', 'Brad'], 'rating': [1.0, 0.9]}) 

私は(例えば1.0'100%'への)文字列としてパーセンテージを小数点からrating列を変換したいです。次は大丈夫作品:

def decimal_to_percent_string(row): 
    return '{}%'.format(row['rating'] * 100) 

df['rating'] = df.apply(func=decimal_to_percent_string, axis=1) 

それは私のデータフレームが非常に大きいため、理想的ではありません全体のデータフレームに関数を適用するように、これは私にとって非常に非効率です。これを行うより良い方法はありますか?

答えて

1

使用パンダ放送事業:df.muldf.addを使用して

df.rating = (df.rating * 100).astype(str) + '%' 
df 
    name rating 
0 Johnny 100.0% 
1 Brad 90.0% 
また

、:

df.rating = df.rating.mul(100).astype(str).add('%') 
df 
    name rating 
0 Johnny 100.0% 
1 Brad 90.0% 
0
df['rating'] = df['rating'].mul(100).astype(int).astype(str).add('%') 
print(df) 

出力:

 name rating 
0 Johnny 100% 
1 Brad 90% 
-1

これを試してみてください:

df['rating'] = pd.Series(["{0:.2f}%".format(val*100) for val in df['rating']], index = df.index) 
print(df) 

を出力は次のとおりです。

 name rating 
0 Johnny 100.00% 
1 Brad  90.00% 
関連する問題