代码之家  ›  专栏  ›  技术社区  ›  Jordan

如何解析Python字符串中的一个字符[[副本]

  •  0
  • Jordan  · 技术社区  · 7 年前

    我有一个数据帧,想把第9个字符解析成第二列。不过,我还是漏掉了语法。

    #develop the data
    df = pd.DataFrame(columns = ["vin"], data = ['LHJLC79U58B001633','SZC84294845693987','LFGTCKPA665700387','L8YTCKPV49Y010001',
                                                 'LJ4TCBPV27Y010217','LFGTCKPM481006270','LFGTCKPM581004253','LTBPN8J00DC003107',
                                                 '1A9LPEER3FC596536','1A9LREAR5FC596814','1A9LKEER2GC596611','1A9L0EAH9C596099',
                                                 '22A000018'])
    
    df['manufacturer'] = ['A','A','A','A','B','B','B','B','B','C','C','D','D']
    
    def check_digit(df):
        df['check_digit'] = df['vin'][8]
        print(df['checkdigit'])]
    

    出于某种原因,这会将第8行VIN放在每行中。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Saket Kumar Singh    7 年前

    在代码中执行以下操作:

    df['check_digit'] = df['vin'][8]
    

    仅选择“vin”列中的第8个元素。请尝试以下操作:

    for i in range(len(df['vin'])):
        df['check_digit'] = df['vin'][i][8]
    

    编辑:正如@Georgy在评论中指出的,使用循环不会是pythonic,解决这个问题的更有效方法是:

    df['check_digit'] = df['vin'].str[8]
    

    this 很有帮助。

        2
  •  0
  •   Yuca    7 年前

    def check_digit(df):
       df['check_digit'] = df['vin'].str[8]
       print(df)