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

如何在python中基于特定列的不同值拆分/子集数据帧

  •  0
  • nasa313  · 技术社区  · 5 年前

    如何根据列的不同值对数据帧进行子集/拆分 UID (请参阅下面的数据帧)

    import pandas as pd 
    
    df = { 
             'UID':['A_1001', 'A_1001', 'A_1001', 'A_1001', 'B_1002','B_1002','B_1002','B_1002','D_1003','D_1003','D_1003','D_1003'],
            'X':[110.21, 191.12, 190.21, 12.00, 245.09,4321.8,122.99,122.88,134.28,148.14,161.17,132.17],
            'Y':[100.22,199.10, 191.13,199.99, 255.19,131.22,144.27,192.21,7005.15,12.02,185.42,198.00],
            'Z':[140.29, 291.07, 390.22, 245.09, 4122.62,4004.52,395.17,149.19,288.91,123.93,913.17,1434.85]
    }
     
    data = pd.DataFrame(df)
    data
          
    

    所需输出应存储基于不同的3个不同数据帧 UIDs -A1001、B_1002和D_1003

    0 回复  |  直到 5 年前
        1
  •  1
  •   pang2016    5 年前
    for i, v in data.groupby("UID"):
        print(i)
        print(v)
    

    你可以使用 groupby 作用

        2
  •  1
  •   Hue    5 年前
    subset = []
    for c in data['UID'].unique():
      a = data[(data["UID"] == c)]
      subset.append(a)
      continue
    
    print(subset)