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

在python中按索引组迭代

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

    wmi . 这个 wmi

    在我的实际代码中,我需要通过WMI拉取一个组,并只将这些vin发送到api;然后拉取下一个组并只将vin发送到api。我的循环不正确。

    #Stack exchange 
    
    import pandas as pd
    #develop the data
    df = pd.DataFrame(columns = ["vin"], data = ['LHJLC79U58B001633','SZC84294845693987','LFGTCKPA665700387','L8YTCKPV49Y010001',
                                                 'LJ4TCBPV27Y010217','LFGTCKPM481006270','LFGTCKPM581004253','LTBPN8J00DC003107',
                                                 '1A9LPEER3FC596536','1A9LREAR5FC596814','1A9LKEER2GC596611','1A9L0EAH9C596099',
                                                 '22A000018'])
    df['wmi'] = df['vin'].str[0:3]
    df.set_index('wmi', inplace = True)
    
    for name, group in df.groupby('wmi'):
        df1 = pd.DataFrame()
        for i in group:
            i = group.vin
            print(i)
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Anna Iliukovich-Strakovskaia    6 年前

    那怎么办 apply 对于分组数据?

    def do_something(df):
        print(df)
    
    df = pd.DataFrame(columns = ["vin"], data = ['LHJLC79U58B001633','SZC84294845693987',
                                             'LFGTCKPA665700387','L8YTCKPV49Y010001',
                                             'LJ4TCBPV27Y010217','LFGTCKPM481006270',
                                             'LFGTCKPM581004253','LTBPN8J00DC003107',
                                             '1A9LPEER3FC596536','1A9LREAR5FC596814',
                                             '1A9LKEER2GC596611','1A9L0EAH9C596099',
                                             '22A000018'])
    df['wmi'] = df['vin'].str[0:3]
    df.groupby('wmi').apply(do_something)
    

    输出:

                      vin  wmi
    8   1A9LPEER3FC596536  1A9
    9   1A9LREAR5FC596814  1A9
    10  1A9LKEER2GC596611  1A9
    11   1A9L0EAH9C596099  1A9
                      vin  wmi
    8   1A9LPEER3FC596536  1A9
    9   1A9LREAR5FC596814  1A9
    10  1A9LKEER2GC596611  1A9
    11   1A9L0EAH9C596099  1A9
              vin  wmi
    12  22A000018  22A
                     vin  wmi
    3  L8YTCKPV49Y010001  L8Y
                     vin  wmi
    2  LFGTCKPA665700387  LFG
    5  LFGTCKPM481006270  LFG
    6  LFGTCKPM581004253  LFG
                     vin  wmi
    0  LHJLC79U58B001633  LHJ
                     vin  wmi
    4  LJ4TCBPV27Y010217  LJ4
                     vin  wmi
    7  LTBPN8J00DC003107  LTB
                     vin  wmi
    1  SZC84294845693987  SZC