如何有条件地更改pandas数据帧中的单元格?

时间:2018-06-12 16:10:29

标签: pandas

我有一个属于object类型的时间列。

我希望在时间长度为3时添加前导0。

因此'1200'应保持不变,但'900'应转换为'0900'

我的猜测是做类似的事情:

import VueYouTubeEmbed from "vue-youtube-embed";
Vue.use(VueYouTubeEmbed);

但是我收到了这个错误:

  

系列的真值是模棱两可的。使用a.empty,a.bool(),   a.item(),a.any()或a.all()。

1 个答案:

答案 0 :(得分:2)

您可以将列视为str并使用:

sample['Time'] = sample['Time'].str.zfill(4)

注意 - 这将使所有字符串至少包含4个字符 - 从前面填充零。对于长度超过长度4的字符串 - 它什么也不做。

例如:

s = pd.Series(['900', '1200', '40', '4', '', float('nan'), '999999'])
r = s.str.zfill(4)

给你一个r

0      0900    # <- prefixed
1      1200    # <- unchanged
2      0040
3      0004
4      0000
5       NaN    # <- nothing happens here
6    999999    # <- string remains 6 characters