我有一个有 500K 行和 200 列的数据框。我需要找到每行的第一个零的列索引。如果我连续找不到任何零,我应该看到像 999。
谢谢你的帮助。
这是我的例子:
a = {'A':[1,2,5,7,0,9],
'B':[6,5,0,0,7,2],
'C':[0,8,np.nan,10,0,6],
'D':[np.nan, 9,5,2,6,7],
'E':[1,4,6,3,3,6]}
aidx = ['id_1','id_2','id_3',
'id_4','id_5','id_6']
df = pd.DataFrame(a, index=aidx)
def get_col(df,num):
df_num = df==num
df_num=df_num[df_num.any(axis=1)].idxmax(axis=1)
return(df_num)
df_new = pd.DataFrame(get_col(df,0))
df_need = pd.DataFrame([2,999,1,1,0,999], index=aidx)
像这样
s=(df.values==0)
np.where(np.any(s,1),s.argmax(1),999)
Out[77]: array([ 2, 999, 1, 1, 0, 999], dtype=int64)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句