为了账号安全,请及时绑定邮箱和手机立即绑定

根据值分割熊猫数据框

根据值分割熊猫数据框

吃鸡游戏 2021-04-01 13:15:52
我想将pandas数据框拆分为多个组,以便分别处理每个组。我的“ value.csv”文件包含以下数字num tID y x height width2   0   0   0   1   162   1   1   0   1   16 5   0   1   0   1   16 5   1   0   0   1   8 5   2   0   8   1   8 6   0   0   0   1   16 6   1   1   0   1   8 6   2   1   8   1   82   0   0   0   1   162   1   1   0   1   16 5   0   1   0   1   16 5   1   0   0   1   8 5   2   0   8   1   8 6   0   0   0   1   16 6   1   1   0   1   8 6   2   1   8   1   8我想基于所述初始值的数据拆分0在tID这样的柱用于第一4分离- 。第一的:2   0   0   0   1   162   1   1   0   1   16 第二:5   0   1   0   1   16 5   1   0   0   1   8 5   2   0   8   1   8 第三:6   0   0   0   1   16 6   1   1   0   1   8 6   2   1   8   1   8第四:2   0   0   0   1   162   1   1   0   1   16 为此,我尝试使用(如果没有成功的话)任何有效的想法来拆分它。    import pandas as pd    statQuality = 'value.csv'    df = pd.read_csv(statQuality, names=['num','tID','y','x','height','width'])    df2 = df.copy()    df2.drop(['num'], axis=1, inplace=True)    x = []    for index, row in df2.iterrows():        if row['tID'] == 0:            x = []            x.append(row)            print(x)        else:            x.append(row)
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

用:


#create groups by consecutive values

s = df['num'].ne(df['num'].shift()).cumsum()

#create helper count Series for duplicated groups like `2_0`, `2_1`...

g = s.groupby(df['num']).transform(lambda x: x.factorize()[0])

#dictionary of DataFrames

d = {'{}_{}'.format(i,j): v.drop('num', axis=1) for (i, j), v in df.groupby(['num', g])}

print (d)

{'2_0':    tID  y  x  height  width

0    0  0  0       1     16

1    1  1  0       1     16, '2_1':    tID  y  x  height  width

8    0  0  0       1     16

9    1  1  0       1     16, '5_0':    tID  y  x  height  width

2    0  1  0       1     16

3    1  0  0       1      8

4    2  0  8       1      8, '5_1':     tID  y  x  height  width

10    0  1  0       1     16

11    1  0  0       1      8

12    2  0  8       1      8, '6_0':    tID  y  x  height  width

5    0  0  0       1     16

6    1  1  0       1      8

7    2  1  8       1      8, '6_1':     tID  y  x  height  width

13    0  0  0       1     16

14    1  1  0       1      8

15    2  1  8       1      8}


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信