我正在尝试编写一个快速函数,将一列中的当前单元格与其上(之前)的单元格进行比较。想法是对同一列但值不同的数据执行不同的操作。
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上方的所有列。
答案 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
这将识别更改,并在连接器发生更改之前删除那些行