假设我有以下数据框并且想要根据“计数器”列中的值创建子数据框,那么最佳的approcah是什么?
Zeit RPM Counter
0 1 1000 1
1 2 1000 1
2 3 1100 2
3 4 1200 2
4 5 1300 3
5 6 1400 3
6 7 1500 4
7 8 1600 4
8 9 1700 5
9 10 1800 5
10 11 1900 6
基本上,这是一种编写循环的优雅方式,而不是以这种方式挑选:
df_1=df[df['counter']==1]
df_2=df[df['counter']==2]
df_3=df[df['counter']==3]
df_4=df[df['counter']==4]
df_5=df[df['counter']==5]
df_6=df[df['counter']==6]
答案 0 :(得分:1)
使用字典表示可变数量的变量:
dfs = {k: df[df['counter'] == k] for k in df['counter'].unique()}
然后通过字典键访问您的切片。例如,要访问counter = 3的切片,请使用dfs[3]
。
如果您只需要一部分切片,请将df['counter'].unique()
替换为此子集,例如1-6的range(1, 7)
。如果您需要所有切片,则可以简化逻辑:
dfs = dict(tuple(df.groupby('counter')))