python在列中分割数字

时间:2018-07-26 14:16:47

标签: python parsing split

请帮助解释以下操作,我很努力。

我有一个名为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

3 个答案:

答案 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