我的数据框架如下所示
index a royal
1 1 king
2 1 king
3 1 king
4 1 king
5 1 king
6 1 king
7 2 queen
8 2 queen
9 2 queen
10 2 king我希望将所有的第7-10行复制到一个新的数据帧中,并将其从原来的数据帧中删除,因为索引7-10不是六个连续的数字,而且也不属于同一类别。我的逻辑是这样的。
starting_position=0
tracking=0
for counter, category in enumerate (df['royal']):
if df['royal'][counter].shift==df['royal'][counter]:
if df['a'][0].shift==df['a'][0]:
counter+=1
if counter!=6:
df2=df.loc[start_position:counter]
df.drop([start_position,counter])
tracking=0
elif counter==6:
tracking=0
else:
df2=df.loc[start_position:counter]
df.drop([start_position,counter])
tracking=0
else:
df2=df.loc[start_position:counter]
df.drop([start_position,counter])
tracking=0这个非常糟糕的密码。我相信有办法用累积量来做这件事,但我就是想不出来。我也在尝试groupby和累计,但是错误输出太多了。理想情况下,我希望有这个输出
DF1
index a royal
1 1 king
2 1 king
3 1 king
4 1 king
5 1 king
6 1 kingDF2
index a royal
7 2 queen
8 2 queen
9 2 queen
10 2 king非常感谢。
发布于 2018-03-15 21:19:42
filter与groupby
df.groupby('a').filter(lambda x : len(x)<6)
Out[173]:
index a royal
6 7 2 queen
7 8 2 queen
8 9 2 queen
9 10 2 king
df.groupby('a').filter(lambda x : len(x)>=6)
Out[174]:
index a royal
0 1 1 king
1 2 1 king
2 3 1 king
3 4 1 king
4 5 1 king
5 6 1 kinghttps://stackoverflow.com/questions/49309347
复制相似问题