python,pandas,如何基于列分离数据帧



说我有一个看起来像这样的数据框架:

mydata = [{'gender' : 'F', 'session': 0, 'score':23},
          {'gender' : 'F', 'session': 1, 'score':24},
       {'gender' : 'M', 'session': 0, 'score':22},
       {'gender' : 'M', 'session': 1, 'score':32},
       {'gender' : 'F', 'session': 0, 'score':33},
          {'gender' : 'F', 'session': 1, 'score':33},
       {'gender' : 'M', 'session': 0, 'score':44},
       {'gender' : 'M', 'session': 1, 'score':44},
       ]
df = pd.DataFrame(mydata)

  gender  score  session
0      F     23        0
1      F     24        1
2      M     22        0
3      M     32        1
4      F     33        0
5      F     33        1
6      M     44        0
7      M     44        1

如何创建一些基于会话和性别的新分数变量:说女性_0,雌性_1,男性_0,male_1。

非常感谢

iiuc您需要 dict comprehension groupby

dfs = {'{}_{}'.format(i[0], i[1]):df for i, df in df.groupby(['gender','session'])}
print (dfs)
{'F_1':   gender  score  session
1      F     24        1
5      F     33        1, 'M_0':   gender  score  session
2      M     22        0
6      M     44        0, 'M_1':   gender  score  session
3      M     32        1
7      M     44        1, 'F_0':   gender  score  session
0      F     23        0
4      F     33        0}
print (dfs['F_1'])
  gender  score  session
1      F     24        1
5      F     33        1

最新更新