Python 从一个数据帧创建多个数据帧

Python 从一个数据帧创建多个数据帧,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有这样一个数据帧: name time session1 session2 session3 Alex 135 10 3 5 Lee 136 2 6 4 我想根据每个会话生成多个数据帧。例如,我想使数据帧成为一个具有名称、时间和会话1的数据帧。数据帧2有名称,时间,和会话2。数据帧3有名称,时间,和会话3。我想使用for循环或其他方法更好,但不知道如何

我有这样一个数据帧:

name   time    session1    session2    session3
Alex   135      10             3           5
Lee    136       2             6           4

我想根据每个会话生成多个数据帧。例如,我想使数据帧成为一个具有
名称
时间
会话1
的数据帧。数据帧2有
名称
时间
,和
会话2
。数据帧3有
名称
时间
,和
会话3
。我想使用for循环或其他方法更好,但不知道如何一次选择列1、2、3,而是列1、2、4等等。任何人都知道这一点。数据保存在数据框中。我只是不知道如何在这里输入Stackoverflow。谢谢

将其组织到数据帧字典中:

dict_of_dfs = {f'df {i}':df[['name','time', i]] for i in df.columns[2:]}
然后,您可以像访问任何其他字典值一样访问每个数据帧:

>>> dict_of_dfs['df session1']
   name  time  session1
0  Alex   135        10
1   Lee   136         2
>>> dict_of_dfs['df session2']
   name  time  session2
0  Alex   135         3
1   Lee   136         6

将其组织到数据帧字典中:

dict_of_dfs = {f'df {i}':df[['name','time', i]] for i in df.columns[2:]}
然后,您可以像访问任何其他字典值一样访问每个数据帧:

>>> dict_of_dfs['df session1']
   name  time  session1
0  Alex   135        10
1   Lee   136         2
>>> dict_of_dfs['df session2']
   name  time  session2
0  Alex   135         3
1   Lee   136         6

我认为你不需要为此编写新的词典

只要在需要时直接切片数据帧即可

df[['name', 'time', 'session 1']]
如果您认为以下设计可以帮助您,您可以将
名称
时间
设置为索引(
df.set_index(['name',time'])
),只需简单地

df['session 1']

我认为你不需要为此编写新的词典

只要在需要时直接切片数据帧即可

df[['name', 'time', 'session 1']]
如果您认为以下设计可以帮助您,您可以将
名称
时间
设置为索引(
df.set_index(['name',time'])
),只需简单地

df['session 1']

非常感谢你!这很有帮助!我优先考虑设置索引的方法!非常感谢你!这很有帮助!我优先考虑设置索引的方法!我有一个关于f'df{I}是什么意思的问题?我尝试了这个方法,但是得到了一个关于无效语法的错误?这是一个
f-string
,它可以从python 3.6以后获得。你可以使用
'df{}。格式(i)
代替标题,我想问一下f'df{i}是什么意思?我尝试了这个方法,但是得到了一个关于无效语法的错误?这是一个
f-string
,它可以从python 3.6以后获得。您可以使用
'df{}。格式(i)