python - 在 pandas 数据框中找到第一次出现的值(从值列表中)并返回该行的索引
问题描述
我有一个 pandas 数据框:(实际数据集要大得多,包含 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。这显然非常笨拙,根本没有利用 Pandas 数据框的功能。有没有一种方法可以直接以 5-23-28-38-49 格式遍历列表以捕获此信息,或者有一种方法可以遍历列以查找 1 到 50 之间所有数字的第一次出现
解决方案
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
推荐阅读
- delphi - How can I save a WhatsApp session using Delphi and Chromium?
- c++ - 混合来自不同 MSVC 的 DLL 时的不同行为
- gradle - gradle grails - 任务“:bootRun”执行失败
- android - 从 build.phonegap.com 下载速度慢
- excel - Primefaces DataExporter - XLSX 和 XLSXSTREAM
- java - 使用 jdbc ftp 驱动程序连接到 ftp 服务器
- c# - 使用 INSERT 将 DataGridView 中的十进制数字插入 MySQL
- android - 使用 Retrofit 解析 JSON 的模型结构
- amazon-web-services - 我可以为默认路由创建一个没有目标组(只想返回 404)的 ALB 侦听器吗
- php - AWS 上的 Laravel 队列工作者找不到工作