数据:
import pandas._testing as tm data = tm.makeDataFrame() data = data.iloc[:5,:]
示例数据:
A B C D 6EBYVo9iQi 0.882518 0.339440 -0.217167 -0.676183 IyhMRuQSXG 0.061733 0.609938 0.355072 -2.146710 gpODAvDD2D 0.606683 0.015434 1.555183 -0.188078 ogf2ehtyPu 0.230608 -1.180461 -0.668320 -1.285371 XC5JreZ09b 1.435801 1.635244 0.071926 0.6076591.单列添加百分号:(Series)
df.A.apply(lambda x:'%.2f%%'%(x*100))
结果:
JhLXvH3BPu 79.09% uuwmJvHWGd -18.96% DVxwCHCNb5 -118.98% fngKR8n0JB -83.89% YOPSTN41Zt 62.11% Name: A, dtype: object2.多列添加百分号:(DataFrame)
df.loc[:,['A','B']].applymap(lambda x:'%.2f%%'%(x*100)) # 整体:df.applymap(lambda x:'%.2f%%'%(x*100))
结果:
A B JhLXvH3BPu 79.09% -82.60% uuwmJvHWGd -18.96% 7.79% DVxwCHCNb5 -118.98% -21.30% fngKR8n0JB -83.89% 179.41% YOPSTN41Zt 62.11% -88.16%
tips:
- iloc与loc的区别在于,前者是行名索引,后者列名索引,也就意味着使用loc给行传数字的时候会报错
- apply与applymap的区别在于,前者使用对象通常为Series,后者使用对象通常为DataFrame
A B C D JhLXvH3BPu 79.09% -82.60% 53.79% 101.07% uuwmJvHWGd -18.96% 7.79% -157.80% 46.24% DVxwCHCNb5 -118.98% -21.30% 196.96% 262.79% fngKR8n0JB -83.89% 179.41% 110.90% -190.75% YOPSTN41Zt 62.11% -88.16% 73.86% -112.09%
使用applymap()去掉
df.applymap(lambda x:x if not '%' in str(x) else x.replace('%',''))
结果:
A B C D JhLXvH3BPu 79.09 -82.60 53.79 101.07 uuwmJvHWGd -18.96 7.79 -157.80 46.24 DVxwCHCNb5 -118.98 -21.30 196.96 262.79 fngKR8n0JB -83.89 179.41 110.90 -190.75 YOPSTN41Zt 62.11 -88.16 73.86 -112.09



