Python Pandas DataFrame根据字符串长度更改内容

时间:2019-01-02 02:38:09

标签: python pandas dataframe

我有一个如下数据框。

matrix = [
  [2, 5, 7],
  [4, 6, 1],
  [7, 3, 9]
];
for (var i in matrix) {
  for (var j in matrix[i]) {
    console.log(matrix[0][0 + 1]);
    console.log(matrix[i][j + 1]);
  }
}

因此,如果您查看第3、4、5行,则ID的长度小于6

df = pd.DataFrame([111111,123456,12345,234,12,987654],columns=['id'])

我想将其转换为以下内容(基本上在前面添加零以使其长度为6)

id
111111
123456
12345
234
12
987654

3 个答案:

答案 0 :(得分:3)

尝试zfill,首先将整数转换为字符串dtype,然后使用字符串访问器,然后使用zfill:

df['id'].astype(str).str.zfill(6)

输出:

0    111111
1    123456
2    012345
3    000234
4    000012
5    987654
Name: id, dtype: object

答案 1 :(得分:2)

使用

df.id.astype(str).str.pad(6,'left','0')
0    111111
1    123456
2    012345
3    000234
4    000012
5    987654
Name: id, dtype: object

答案 2 :(得分:0)

您必须将数据类型更改为字符串,否则初始零将被修剪。 下面是我的解决方案。希望对您有帮助

df = pd.DataFrame([111111,123456,12345,234,12,987654],columns=['id'])
df = df.astype(str)
df['id'] = df['id'].apply(lambda x: x if len(x)==6 else '0'*(6-len(x))+x)

df:
id
111111
123456
012345
000234
000012
987654