循环遍历特定列以获取子数据帧

时间:2018-04-26 10:25:32

标签: python pandas

假设我有以下数据框并且想要根据“计数器”列中的值创建子数据框,那么最佳的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]

1 个答案:

答案 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')))