如何将当前Excel单元格与同一列中的先前Excel单元格进行比较

时间:2019-01-25 18:30:17

标签: python pandas

我正在尝试编写一个快速函数,将一列中的当前单元格与其上(之前)的单元格进行比较。想法是对同一列但值不同的数据执行不同的操作。

if (df.loc() != df.loc[::-1] & df1.loc() != df1.loc[:-1]):
df = df.iloc()
df1 = df1.iloc()

我的想法是将当前位置与当前位置-1进行比较,如果它们相同,则继续进行。否则,当单元格值更改时,执行另一项任务。我正在对两个不同的数据帧执行此操作,每个数据帧在我尝试读取的每个数据帧中具有相同的列名。

   Connector  Pin        Adj.  
0       F123    1       2 6 7  
1       F123    2   1 3 6 7 8  
2       F123    3   2 4 7 8 9  
3       F123    4  3 5 8 9 10  
4       F123    5      4 9 10  
5       F123    6       1 2 7  
6       F123    7   1 2 3 6 8  
7       F123    8   2 3 4 7 9  
8       F123    9  3 4 5 8 10  
9       F123   10       4 5 9  
10      C137    1         2 1  
11      C137    2         1 

遍历此表后,当连接器从F123更改为C137时,我想清除第一个C137上方的所有列。

1 个答案:

答案 0 :(得分:0)

考虑以下数据框:

print(df)

 Connector  Pin        Adj.
0       F123    1       2 6 7
1       F123    2   1 3 6 7 8
2       F123    3   2 4 7 8 9
3       F123    4  3 5 8 9 10
4       F123    5      4 9 10
5       F123    6       1 2 7
6       F123    7   1 2 3 6 8
7       F123    8   2 3 4 7 9
8       F123    9  3 4 5 8 10
9       F123   10       4 5 9
10      C137    1         2 1
11      C137    2           1

如果您使用:

df.drop(range(df.Connector.ne(df.Connector.shift()).cumsum().idxmax()))

   Connector  Pin Adj.
10      C137    1  2 1
11      C137    2    1

这将识别更改,并在连接器发生更改之前删除那些行