2024-09-19 23:37:45 发布
网友
我想写一个断言语句来检查列'client_id'的具体长度是否为12
assert kcell[ kcell['client_id'].apply(lambda id: len(id) == 12 ]
或
assert (kcell[ kcell['client_id'].apply(lambda id: len(id) == 12])
我认为您需要使用^{}和all来检查列的所有值是否都有长度12,因为一般解决方案是添加^{}来转换为字符串:
all
12
kcell = pd.DataFrame({'client_id':['012345678912','012345678912']}) print (kcell) client_id 0 012345678912 1 012345678912 assert (kcell['client_id'].astype(str).str.len() == 12).all(), 'client_id length is not 12'
kcell = pd.DataFrame({'client_id':['012345678912','012']}) print (kcell) client_id 0 012345678912 1 012 assert (kcell['client_id'].astype(str).str.len() == 12).all(), 'client_id length is not 12'
AssertionError: client_id length is not 12
如果需要实际的断言,请运行:
assert kcell.client_id.apply(lambda n: len(str(n))).eq(12).all(), 'client_id length always 12'
请注意,如果列是例如int类型,则kcell['client_id'].str.len() == 12将失败。 我的解决方案适用于intotstring列
kcell['client_id'].str.len() == 12
您可以使用^{}和^{}直接应用len函数,而不是lambda
len
lambda
assert (df.client_id.apply(len) == 12).all(),"Error message"
我认为您需要使用^{} 和} 来转换为字符串:
all
来检查列的所有值是否都有长度12
,因为一般解决方案是添加^{如果需要实际的断言,请运行:
请注意,如果列是例如int类型,则
kcell['client_id'].str.len() == 12
将失败。 我的解决方案适用于intotstring列您可以使用^{} 和^{} 直接应用
len
函数,而不是lambda
相关问题 更多 >
编程相关推荐