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))]}