我的dataframe是这样的在下面...
0 1 2
0 1 02 3
1 1 04 04
2 1 54 04
3 1 * *
然而,我想要的结果是...
0 1 2
0 1 2 3
1 1 4 4
2 1 54 4
3 1 * *
我想将02格式化为仅2。我的解决方案之一是使用if-else方法来避免“*”,而02将被格式化为2。但是它不起作用,我假设MasterDf.iloc[:,2]引用了整个列。
if MasterDf.iloc[:,2].str.contains('*'):
pass
else:
MasterDf.iloc[:,2] = MasterDf.iloc[:,2].astype('int64')
2条答案
按热度按时间mrzz3bfm1#
使用
replace
和正则表达式:0
s,请使用df.replace('^0(?=\d+)', '', regex=True)
。*输出:
Regex:
更复杂的替代方案,使用
str.lstrip
和就地修改:34gzjxbg2#
只是为了好玩,如何
applymap
与自定义转换器如果需要将其应用于特定列: