.merge()
Pandas函数出现语法错误。
我在做什么错,我该如何解决?
下面是我的代码段;
df2 = df2.merge(df1[list('col1','col2'], on ='ABC')
答案 0 :(得分:1)
您需要为此使用字符串格式:
>>> for n in (9, 99, 999, 9999):
... print(f"{n:0>4}")
...
0009
0099
0999
9999
答案 1 :(得分:1)
str.zfill(x)
会将x零放在任何字符串之前
如果您想使用字符串格式,f'{str:0x}'
也可以使用。
P.S。不要命名您的字符串str
,因为它会使str
类重载
答案 2 :(得分:0)
您将不得不将其视为字符串值,因为数字值不能包含前导零。要创建长度为4的0填充字符串,您可以执行以下操作:
v = 4
print("{:04d}".format(v))
或更旧的样式:
v = 4
print("%04d" % v)
两种方式的结果:
0004
答案 3 :(得分:0)
字符串格式就是答案。
print('%04d' % 4)
0004
print('%04d' % 43)
0043
答案 4 :(得分:0)
zfill()方法用零填充左侧的字符串以填充宽度。
宽度-这是字符串的最终宽度。这是我们的宽度 填零后会得到。
id = [6, 77, 888, 9999]
print([str(x).zfill(4) for x in id])
输出:
['0006', '0077', '0888', '9999']
编辑:
要使用列表理解转换列中的列值:
import pandas as pd
df = pd.DataFrame({'un-padded':[6, 77, 888, 9999]})
df['padded'] = [str(x).zfill(4) for x in df['un-padded']]
print(df)
输出:
un-padded padded
0 6 0006
1 77 0077
2 888 0888
3 9999 9999