请帮助解释以下操作,我很努力。
我有一个名为data3的数据集:
类型(列1)= GTIN或GCP的字符串值
键(第2列)= 14位数字
我需要将这14位数字分解为以下逻辑:
如果type = GCP
,则从key返回前三个字母。
如果type = GTIN
的14位数字中的2-6位= 00000,则返回键中的7-9位。
如果type = gtin
和位置2-6都不是00000,则在key中返回2-4位。
示例:
- Type -Key
- GTIN -1234589564652344
- GCP -1564546545452344
- GTIN -6000005645324234
如果类型是GCP,我只想要键中的前三个数字,例如156。 如果它是GTIN,并且位置2-6中有5个零,我希望位置7-9可以是564英寸。
如果类型为GTIN并且在位置2-6处没有5个零,那么我想返回2-4之类的数字,例如上述示例中的234
答案 0 :(得分:0)
您做得很好,将逻辑分解为3个ifs。
现在将每个代码分成几段代码。第一个很简单:
if type == "GCP":
return key[:3]
您无法编写什么代码?
答案 1 :(得分:0)
如果将数字存储为字符串,则可以在python中轻松拆分。您可以使用所需字符的索引分割字符串。例如,如果您想从字符串中获取前三个字符,则可以
key[:3]
这将为您提供一切,但不包括3位置的字符。要将字符拉出中间,可以使用
key[1:6]
这将为您提供从1点到6点的所有数字。 (请记住,索引从0开始)
如果您想检查字符串的中间部分以查看它是否等于某项,请尝试如下操作:
if key[1:6] == "00000":
#do something
这将比较字符串的1到6之间的部分,以查看它是否等于“ 00000”。
答案 2 :(得分:0)
您可以使用/
函数执行以下操作:
apply