我有一个pandas数据帧,它在第一次观察时为字符串的观察建立了索引。窗户大小不一。在这个例子中,我们可以说它们是4个观测值的链。我想知道,如果在窗口的任何地方有特定的观察值,如何最有效地消除某些值,知道如果第n个窗口以我要查找的值开头,我知道我可以去掉它,并且在它之前的三个窗口中也会包含相同的值。一个窗口可能包含我要筛选的值的多个实例。这是一些样本数据。从一系列简单的事件开始,ser:import pandas as pd
ser = pd.Series(['a','b','c','d','e','f','g','h','i','j','k'])
>>> ser
0 a
1 b
2 c
3 d
4 e
5 f
6 g
7 h
8 i
9 j
10 k
然后我将其转换为一个数据帧,其中每一行都是n个观察值的窗口。这里n==4。在
^{2}$
现在我想删除所有包含值“f”的行,例如:
期望输出0 1 2 3
0 a b c d
1 b c d e
6 g h i j
7 h i j k
8 i j k NaN
9 j k NaN NaN
10 k NaN NaN NaN
我希望避免搜索整个dataframe,因为它只包含第一列的重复内容,而且我的n值可能有点长。在本例中,如果知道以“c”、“d”、“e”和“f”开头的列都将在某处包含“f”,那么最好的方法是删除这些列。稍后,我将每行中的所有字符串合并为一个值,但在这一阶段,似乎更容易操作数据,因为所有内容都在不同的列中。这是在pandas 0.16.0中使用的,必须在python2.76和python3.4上运行。谢谢您!在