Python 查找数据帧中第一个出现的值(从值列表中),并返回该行的索引

Python 查找数据帧中第一个出现的值(从值列表中),并返回该行的索引,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据框:(实际数据集要大得多,包含1-50的数字) 我想返回每个数字第一次出现的行索引。到目前为止,我能够实现这一点的唯一方法是“手动”使用lotteryData.loc[(lotteryData.N5==1)].head(49),在本例中,它给出了行索引号2。这显然非常笨拙,根本没有利用熊猫数据帧功能。有没有一种方法可以直接遍历格式为5-23-28-38-49的列表以获取此信息,或者有没有一种方法可以遍历列以找到1到50之间所有数字的第一个位置我们可以做stack删除重复的 out

我有一个熊猫数据框:(实际数据集要大得多,包含1-50的数字)


我想返回每个数字第一次出现的行索引。到目前为止,我能够实现这一点的唯一方法是“手动”使用
lotteryData.loc[(lotteryData.N5==1)].head(49)
,在本例中,它给出了行索引号2。这显然非常笨拙,根本没有利用熊猫数据帧功能。有没有一种方法可以直接遍历格式为5-23-28-38-49的列表以获取此信息,或者有没有一种方法可以遍历列以找到1到50之间所有数字的第一个位置

我们可以做
stack
删除重复的

out = df.loc[:,'N2':].stack().drop_duplicates()
0  N2    12
   N3    14
   N4    40
   N5    42
1  N2     5
   N3    24
   N4    43
   N5    45
2  N2    23
   N3    28
   N4    38
   N5    49
3  N2    11
   N3    22
   N5    41
4  N2    27
   N3    30
   N4    46
dtype: int64

您能显示您的预期输出吗?理想情况下,我想要一个新的数据框,其中数字和行索引作为一个值,例如上面示例中的49和2(此数据集上的索引实际上反映了周数)。上面使用loc的示例输出每列带有索引X的行;按
系列分组(np.arrange(1,51))
,获得每组中第一项的索引。您希望某个数字在任何列中第一次出现,还是在每列中第一次出现?任何列中第一次出现的数字的索引谢谢。现在,我需要阅读stack()和drop_duplicates()的功能,才能正确理解它。请问如何将数字和索引放入新的数据帧中?虽然输出很清楚,但我不知道如何在数据帧中使用它
out = df.loc[:,'N2':].stack().drop_duplicates()
0  N2    12
   N3    14
   N4    40
   N5    42
1  N2     5
   N3    24
   N4    43
   N5    45
2  N2    23
   N3    28
   N4    38
   N5    49
3  N2    11
   N3    22
   N5    41
4  N2    27
   N3    30
   N4    46
dtype: int64