数据:
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.607659
1.单列添加百分号:(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: object
2.多列添加百分号:(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
3.将数据中的百分号去掉 数据:
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