为了账号安全,请及时绑定邮箱和手机立即绑定

在 pandas 数据框中查找某个值(从值列表中)第一次出现并返回该行的索引

在 pandas 数据框中查找某个值(从值列表中)第一次出现并返回该行的索引

莫回无 2023-08-22 17:15:59
我有一个 pandas DataFrame(实际数据集要大得多,包含 1-50 的数字):          date           main   N1  N2  N3  N4  N50   2020-09-18  7-12-14-40-42   7   12  14  40  421   2020-09-11  2-5-24-43-45    2   5   24  43  452   2020-09-04  5-23-28-38-49   5   23  28  38  493   2020-08-28  8-11-22-38-41   8   11  22  38  414   2020-08-21  26-27-30-46-49  26  27  30  46  49我想返回每个数字第一次出现的行索引。到目前为止,我能够实现这一目标的唯一方法是“手动”使用lotteryData.loc[(lotteryData.N5==1)].head(49)在本例中,行索引号为 2。这显然非常笨拙,并且根本没有利用 Pandas DataFrame 的功能。有没有一种方法可以直接迭代 5-23-28-38-49 格式的列表来捕获此信息,或者可以迭代列以查找 1 到 50 之间所有数字的第一次出现
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

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


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信