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

2024-10-01 17:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

  date         main         N1  N2  N3  N4  N5
0   2020-09-18  7-12-14-40-42   7   12  14  40  42
1   2020-09-11  2-5-24-43-45    2   5   24  43  45
2   2020-09-04  5-23-28-38-49   5   23  28  38  49
3   2020-08-28  8-11-22-38-41   8   11  22  38  41
4   2020-08-21  26-27-30-46-49  26  27  30  46  49

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


Tags: 数据方法datemain数字手动headloc
1条回答
网友
1楼 · 发布于 2024-10-01 17:29:27

我们可以做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

相关问题 更多 >

    热门问题