我有一个熊猫数据框,其中有几千行,只有一列。内容的结构如下:
| 0
0 | Score 1
1 | Date 1
2 | Group 1
3 | Score 1
4 | Score 2
5 | Date 2
6 | Group 2
7 | Score 2
8 | Score 3
9 | Date 3
10| Group 3
11| ...
12| ...
13| Score (n-1)
14| Score n
15| Date n
16| Group n
如果行(i)中的“得分”和行(i + 1)中的“得分”,我需要删除所有索引为i的行。关于如何实现这一目标的任何建议?
预期输出如下:
| 0
0 | Score 1
1 | Date 1
2 | Group 1
3 | Score 2
4 | Date 2
5 | Group 2
6 | Score 3
7 | Date 3
8 | Group 3
9 | ...
10| ...
11| Score n
12| Date n
13| Group n
答案 0 :(得分:1)
如果行(i)中的“得分”和行(i + 1)中的“得分”,我需要删除所有索引为i的行。关于如何实现这一目标的任何建议?
给予
>>> df
0
0 Score 1
1 Date 1
2 Group 1
3 Score 1
4 Score 2
5 Date 2
6 Group 2
7 Score 2
8 Score 3
9 Date 3
您可以使用
>>> mask = df.assign(shift=df[0].shift(-1)).apply(lambda s: s.str.contains('Score')).all(1)
>>> df[~mask].reset_index(drop=True)
0
0 Score 1
1 Date 1
2 Group 1
3 Score 2
4 Date 2
5 Group 2
6 Score 3
7 Date 3
尽管我是您,但我还是会先使用修正数据的格式,正如评论员已经指出的那样。