Pandas-如何将单个 Dataframe 拆分为多个 Dataframe ?[duplicate]

htrmnn0y  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(314)
    • 此问题在此处已有答案**:

Split pandas dataframe based on groupby(4个答案)
昨天关门了。
我想创建多个 Dataframe ,并将它们组成一个 Dataframe 列表。我想通过指定veh值将其拆分。例如,从下面的 Dataframe 中,我想获得4个单个 Dataframe :

  1. ped值1和veh值1
  2. ped值1和veh值2
  3. ped值1,车辆值3
  4. ped值1,车辆值4
    | ped值|车辆价值|
    | - ------|- ------|
    | 1个|1个|
    | 1个|1个|
    | 1个|第二章|
    | 1个|第二章|
    | 1个|三个|
    | 1个|三个|
    | 1个|四个|
    | 1个|四个|
    所需输出:|ped值|车辆价值||- -------||1个|1个||1个|1个|
    | ped值|车辆价值|
    | - ------|- ------|
    | 1个|第二章|
    | 1个|第二章|
    | ped值|车辆价值|
    | - ------|- ------|
    | 1个|三个|
    | 1个|三个|
    | ped值|车辆价值|
    | - ------|- ------|
    | 1个|四个|
    | 1个|四个|
    grouped = df.groupby(['ped', 'veh']) ped_veh1 = grouped.get_group(("P1", 1)) print(ped_veh1)
    上面的代码是我用来分割 Dataframe 的初始代码。但是,我得到了100个不同的veh值,所以有什么方法可以实现上面的输出吗?
    我试过使用for i in range方法:
    for i in range (1,100): grouped = df.groupby(['ped', 'veh']) ped_veh1 = grouped.get_group(("P1", i)) print(ped_veh1)
    但是,代码不起作用,因为值i不连续,例如:i = 1、2、3、5、6、8、9、10、12
    当无法找到i = 4时,代码停止运行,并引发错误。
    那么,有没有办法或解决方案来解决这个问题呢?
ru9i0ody

ru9i0ody1#

您可以使用拆分Pandas Dataframe,先使用groupby()函数,然后使用get_group

dfs = []
for v in df['veh value'].unique():
    dfs.append(df.groupby('veh value').get_group(v))
  • 产出
[   ped value  veh value
 0          1          1
 1          1          1,
    ped value  veh value
 2          1          2
 3          1          2,
    ped value  veh value
 4          1          3
 5          1          3,
    ped value  veh value
 6          1          4
 7          1          4]

相关问题