熊猫数据框在某些索引之前接受行

时间:2018-09-16 12:24:11

标签: python pandas dataframe data-processing data-munging

我有一个数据框和一个索引列表,我想获取一个新的数据框,以便对于每个索引(从给定的最后一个开始),我将采用与给定列的值匹配的所有前面的行在索引处。

      C1 C2 C3
0     1  2  A
1     3  4  A
2     5  4  A
3     7  5  B
4     9  7  C
5     2  3  D
6     1  1  D

列c3的索引(行号)2、4、5是我的新数据帧:

     C1 C2 C3
0     1  2  A
1     3  4  A
2     5  4  A
4     9  7  C
5     2  3  D

说明:

对于索引2,选择了行0,1,2,因为C3全部相等。

对于索引4,没有前一行有效。

对于索引5,也没有任何前一行有效,而第6行是不相关的,因为它不在前面。 最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果要使前面的行与条件匹配,则可以设置条件以过滤数据。

{input}{input}

出局:

{input}{input}{input}

在其他列上应用

ind= 2
col ='C3'
# ".loc[np.arange(ind+1)]" creates indexes till preceding row, so rest of matching conditions can be ignored 
df.loc[df.loc[ind][col] == df[col]].loc[np.arange(ind+1)].dropna()

出局:

   C1   C2  C3
0   1   2   A
1   3   4   A
2   5   4   A