我希望在使用过滤器命名数据帧时,从python中的单个大数据帧生成一系列较小的数据帧

我希望在使用过滤器命名数据帧时,从python中的单个大数据帧生成一系列较小的数据帧,python,dataframe,for-loop,string-formatting,Python,Dataframe,For Loop,String Formatting,我有一个叫做dfe的大数据框,里面充满了科学信息。在我的第一列(“reaction”)中有三个不同的字符串变量,比如a、b、c。我希望将此数据帧拆分为三个数据帧dfa、dfb、dfc。我有一个名为react2的列表变量,包含变量a、b、c 以下是我的问题代码: for i in react2: df{}.format(i) = dfe[dfe['reaction'] = i ] 然后我得到一个错误: df{}.format(i) = dfe[dfe['reaction'] = i ]

我有一个叫做dfe的大数据框,里面充满了科学信息。在我的第一列(“reaction”)中有三个不同的字符串变量,比如a、b、c。我希望将此数据帧拆分为三个数据帧dfa、dfb、dfc。我有一个名为react2的列表变量,包含变量a、b、c

以下是我的问题代码:

for i in react2:
    df{}.format(i) = dfe[dfe['reaction'] = i ]
然后我得到一个错误:

 df{}.format(i) = dfe[dfe['reaction'] = i ]
   ^
 SyntaxError: invalid syntax

最明智的做法是将它们存储在字典中:

df_dict = {}
for i in react2:
    df_dict[i] = dfe[dfe['reaction'] == i]
您可以使用字典将其放在一行:

df_dict = {i : dfe[dfe['reaction'] == i] for i in react2}

嗨,欢迎来到Stack Overflow。就我的理解而言,您希望
df{}.format
做什么?谢谢。我希望它在循环中命名我的数据帧。对于react2=[a,b,c],我想象它将生成变量名为dfa,dfb,dfc的数据帧。这不可能吗?哦,那就清楚了,谢谢。但不幸的是,这是不可能的。@TBurgis的答案有用吗?好的,谢谢你的帮助@这个答案解决了我的问题。