Python 如何使用循环为数据帧指定顺序名称?

Python 如何使用循环为数据帧指定顺序名称?,python,python-3.x,pandas,dataframe,jupyter-notebook,Python,Python 3.x,Pandas,Dataframe,Jupyter Notebook,我成功地将一个数据帧拆分为几个较小的数据帧。我现在正致力于给这些数据帧序列名称,并且可以独立调用 shuffled = df.sample(frac=1) result = np.array_split(shuffled, 3) for part in result: print(part, '\n') movie_id 1 2 5 borda rank IRAM 2 3 4 0 0 4 3 2 1 2

我成功地将一个
数据帧
拆分为几个较小的
数据帧
。我现在正致力于给这些
数据帧
序列名称,并且可以独立调用

shuffled = df.sample(frac=1)
result = np.array_split(shuffled, 3) 

for part in result:
    print(part, '\n')

movie_id  1  2  5  borda  rank  IRAM
2         3  4  0  0      4     3     2
1         2  3  0  3      6     2     1 

   movie_id  1  2  5  borda  rank  IRAM
4         5  3  0  0      3     4     3
0         1  5  4  4     13     1     4 

   movie_id  1  2  5  borda  rank  IRAM
3         4  3  0  0      3     4     3 
我想用循环(或任何有用的方法)按顺序为这些分离的数据帧命名

例如:

df_1
   movie_id  1  2  5  borda  rank  IRAM
2         3  4  0  0      4     3     2
1         2  3  0  3      6     2     1 

df_2
   movie_id  1  2  5  borda  rank  IRAM
4         5  3  0  0      3     4     3
0         1  5  4  4     13     1     4 

df_3
   movie_id  1  2  5  borda  rank  IRAM
3         4  3  0  0      3     4     3 
我已经寻找了一段时间的解决方案,但我找不到一个理想的答案来解决我的问题

df_dict = {}
for index, splited in enumerate(result):
    df_name = "df_{}".format(index)
    # if you want to set name of the dataframe
    splited.name = df_name
    # if you want to set the variable name to dataframe
    df_dict[df_name] = splited
print(df_dict)

然后,您可以通过
df_dict[df_name]
调用任何
splited_df
,这可以通过使用字典并将所有数据帧添加到字典中来完成:

df = pd.DataFrame({'Col1': np.random.randint(10, size=10)})
shuffled = df.sample(frac=1)
result = np.array_split(shuffled, 3) 
d = {}
for i, part in enumerate(result):
    d['df_'+str(i)] = part          # If want to start the number for df from 1 then use str(i+1)

print(d['df_0'])
   Col1
7     7
6     0
4     5
2     3

print(d['df_1'])
   Col1
0     0
8     1
1     5

print(d['df_2'])
   Col1
5     2
3     2
9     4

您可以使用字典,如下所示:

d = {"df_"+str(k):v for (k,v) in [(i,result[i]) for i in range(len(result))]}

如果你看到之前的问题,我的回答中就包括了这一点。
d = {"df_"+str(k):v for (k,v) in [(i,result[i]) for i in range(len(result))]}