我有一个Pandas DataFrame,我正在try 查找两个列值不同的第一行的索引.然而,我需要开始以相反的顺序进行搜索.
下面是一个例子:
import pandas as pd
data = {'Column1': [1, 2, 3, 5, 5],
'Column2': [1, 1, 3, 5, 5]}
df = pd.DataFrame(data)
例如,在这里,我希望从倒数第二个索引开始,直到找到列值不同的第一个索引.因此,期望的输出将是"1".
我有一个Pandas DataFrame,我正在try 查找两个列值不同的第一行的索引.然而,我需要开始以相反的顺序进行搜索.
下面是一个例子:
import pandas as pd
data = {'Column1': [1, 2, 3, 5, 5],
'Column2': [1, 1, 3, 5, 5]}
df = pd.DataFrame(data)
例如,在这里,我希望从倒数第二个索引开始,直到找到列值不同的第一个索引.因此,期望的输出将是"1".
通过索引筛选行,例如索引值为i
,Comapre表示不等于Series.ne
,最后使用boolean indexing
与Series.last_valid_index
:
Notice: If no difference output is 100.
i = 3
s = df.loc[:i, 'Column1'].ne(df.loc[:i, 'Column2'])
out = s[s].last_valid_index()
next
和iter
的另一个 idea 是:
i = 3
s = df.loc[:i, 'Column1'].ne(df.loc[:i, 'Column2'])
out = next(iter(s.index[s][::-1]), None)