这只是我编写的示例DataFrame。我输出了我想看到的内容。我想在这里尝试两件事。
.
下划线替换列名称中的句点_
。我可以
对于这个单独但我想在循环中这样做,就像我们假设的那样
有40-50个列名。Car.Mile
是否为5位数。如果不是prerend 0's car.Model car.Color car.Year car.Mile
0 AUDI RED 2015 14000
1 BUIC WHITE 2015 9000
2 PORS BLUE 2016 7000
3 HONDA BLACK 2015 100000
输出
car_Model car_Color car_Year car_Mile
0 AUDI RED 2015 014000
1 BUIC WHITE 2015 009000
2 PORS BLUE 2016 007000
3 HONDA BLACK 2015 100000
答案 0 :(得分:2)
您可以使用str.replace
替换.
然后将列car_Mile
转换为字符串astype
和上一个apply
zfill
:
df.columns = df.columns.str.replace('.', '_')
df['car_Mile'] = df['car_Mile'].astype(str).apply(lambda x: x.zfill(6))
print df
car_Model car_Color car_Year car_Mile
0 AUDI RED 2015 014000
1 BUIC WHITE 2015 009000
2 PORS BLUE 2016 007000
3 HONDA BLACK 2015 100000
或者:
df.columns = df.columns.str.replace('.', '_')
df['car_Mile'] = df['car_Mile'].astype(str).apply(lambda x: '{0:0>6}'.format(x))
print df
car_Model car_Color car_Year car_Mile
0 AUDI RED 2015 014000
1 BUIC WHITE 2015 009000
2 PORS BLUE 2016 007000
3 HONDA BLACK 2015 100000
编辑:
感谢Edchum改进 - apply
没有必要,更好的是使用str.zfill
:
df.columns = df.columns.str.replace('.', '_')
df['car_Mile'] = df['car_Mile'].astype(str).str.zfill(6)
print df
car_Model car_Color car_Year car_Mile
0 AUDI RED 2015 014000
1 BUIC WHITE 2015 009000
2 PORS BLUE 2016 007000
3 HONDA BLACK 2015 100000