>所有,我已经四处寻找解决问题的方法,但找不到任何以我想要的方式工作的东西。 我正在尝试使用以下脚本来复制 Excel 的 MATCH(( 函数,以查找数据框中1
数字的下一次出现。 我是编码新手,所以可能会忽略一些简单的东西。
我创建的示例数据集如下所示:
import pandas as pd
import numpy as np
df=pd.DataFrame({'secondcol': [0, 0, 0, 1, 1, 0, 1]})
我一直在尝试的代码是这样的:
df['match']=df['secondcol'].index(next(lambda x: x!=0, df['secondcol'])
这给出了这个错误:
TypeError: 'function' object is not an iterator
期望的结果是这样的:
match secondcol
0 3 0
1 2 0
2 1 0
3 0 1
4 0 1
5 1 0
6 0 1
我已经查找了错误,但无法弄清楚如何更改代码以删除它。 任何帮助将不胜感激,谢谢!
做这样的事情:
for i in range(0,len(a)):
c+=str(a[i:].index(1))
print(c)
试试这个:
import pandas as pd
import numpy as np
df=pd.DataFrame({'secondcol': [0, 0, 0, 1, 1, 0, 1]})
b = df["secondcol"].tolist()
c=[b[i:].index(1) for i in range(0,len(b))]
df['match']=c