问题标签 [isin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
27 浏览

python - 遍历列以匹配 dict 值

我有一个类似的字典:

和 df 有两列;具有多个字符串的文本列:

如果文本列中的任何字符串与 dict.values 匹配,我想使用 dict 中的密钥对向 df 添加额外的列,因此对于 a - color / b - fruits / c - animal。

我正在尝试使用isin列表,但认为使用 dict 可能会更有效。?任何帮助表示赞赏

0 投票
2 回答
35 浏览

python - 根据不同的列值选择多行

我正在尝试根据分类评估一些图像。我使用下面的代码来读取 csv 文件:

所以我有一些看起来像这样的东西:

因此,如果我想保留值为“Green”的图像,输出应如下所示:

这意味着当至少有一个我检查的元素位于最后一列时,我想在第一列中保留具有相同 id 的图像。

我使用了该isin方法,但我不知道如何将图像保留在其余行中,这些图像至少在最后一列中具有“绿色”值。

0 投票
1 回答
104 浏览

python - 如何保留具有共同列值的多个数据框中的行?

假设我有多个数据框:

如何创建一个新的 df 只包含列中有值的行A并且B在同一日期时间?我尝试使用该isin功能:

但这仅进行单向检查,即仅保留同时A存在 的值的值,但如果日期时间中不存在的额外值则保留在 df2 中。BdatetimeBA

我可以在相反的方向重复操作来解决这个问题:

但是对于 >2 个数据帧(我目前的工作中大约有 50 个),这变得非常冗长且效率低下,因为有必要遍历整个数据帧集之间的每一个可能的配对组合。例如,首先需要对照 df1 和 df2 检查第三个数据帧 df3,但如果它包含既不存在于 df1 也不存在于 df2 中的日期时间,那么 df1 和 df2 将依次需要对照 df3 重新检查。

所需的输出是重新定义所有数据帧,以便它们仅包含具有匹配日期时间值的A、等值。B

0 投票
1 回答
53 浏览

python - 根据另一个数据框的列条目过滤一个数据框的行的最佳方法是什么

我在 python 中有两个数据框,一个名为 DayList,包含以下列:OrderNr Powder Variant Quantity DueDate,另一个名为 Planning,包含以下列:Order Start End Day Powder Variant Task。两个数据框都将有多行具有特定组合,Powder 和 Variant 的列条目将是一个整数,我想将数据框 DayList 过滤为三个类别。

第一类是行的子集,其中 Powder 和 Variant 的确切组合也存在于数据框 Planning 的某处。第二类是数据框 Planning 中不存在 Powder 和 Variant 的确切组合的行的子集,但 Powder 的条目位于数据框 Planning 中的 Powder 列中的某个位置。第三类是 Powder 条目不在数据框 Planning 中的 Powder 列中的行子集。

这三个类别不应重叠,而是由数据框 DayList 的所有行组成。我对数据框很陌生,所以我不确定如何定义它。我一直在尝试使用 isin() 但我似乎对第一类的正确陈述感到困惑。

0 投票
1 回答
136 浏览

python - 将其与列表值进行比较后从数据框中保存值 - Python

我正在尝试将列表中的值与数据框列的值进行比较。如果两者相等,我想保存数据框的整行。我无法编写指令来保存数据帧的整行。

以下是数据框和列表的一些数据:

我开始写的代码如下:

我得到的结果是不对的。

这里有什么问题?

谢谢你的建议

0 投票
1 回答
79 浏览

python - .isin() 之后仍显示列值

根据要求,这是一个最小的可重现示例,它将产生 .isin() 不删除不在 .isin() 中的值而只是将它们设置为零的问题:

我为“服务年限”的列创建了垃圾箱:

然后我将 .isin() 应用于名为“yos_bins”的数据框列,目的是过滤选择的列值。摘自 df 中的列。

我用来切片的列称为“yos_bins”(即分箱服务年限)。我只想选择 3 个范围(0-1、1-2、2-3 年),但显然该列中包含更多范围。

令我惊讶的是,当我应用 value_counts() 时,我仍然从 df 数据框中获取 yos_bins 列的所有值(但计数为 0)。

看起来像这样:

在此处输入图像描述

这不是故意的,除了 isin() 中的 3 之外的所有其他 bin 都应该被删除。产生的问题是 0 值显示在 sns.countplots 中,所以我最终得到了不想要的零计数列。

当我保存 df to_excel() 时,所有“10-15”值字段都显示“带有 2 位年份的文本日期”错误。我没有将该数据帧加载回python,所以不确定这是否会导致问题?

有谁知道我如何创建仅包含 3 个 yos_bins 值而不是显示所有 yos_bins 值但有些为零的测试数据框?

0 投票
2 回答
220 浏览

python - .isin() 比 .query() 快吗

问题:

你好,

在搜索选择数据框的方法时(对 Pandas 相对缺乏经验),我有以下问题:

对于大型数据集,什么更快 - .isin() 或 .query()?

Query 阅读起来更直观一些,因此由于我的工作,我更喜欢这种方法。但是,在一个非常小的示例数据集上对其进行测试,查询似乎要慢得多。

有没有人以前正确测试过这个?如果有,结果如何?我搜索了网络,但找不到关于此的其他帖子。

请参阅下面的示例代码,它适用于 Python 3.8.5。

非常感谢您的帮助!

代码:
0 投票
2 回答
64 浏览

python - 如何生成两个数据框之间未共享的项目列表

基本上,我有一堆按颜色(项目)分类的独特项目的单一列表。我做了一些事情并使用这些独特项目(组合)的选定组合生成一个数据框。我的目标是列出原始列表中未出现在组合数据框中的项目。理想情况下,我想检查所有四个颜色列,但对于我的初始测试,我只选择了“红色”列。

我的第一次尝试是使用下面的行,但这会引发执行错误“KeyError:'Id'”。一个论坛帖子表明可能会解决它,但这drop=Trueset_index我的情况下似乎不起作用。

我试图通过使用这条线来解决它。在执行时,它会生成一个空数据框。仅通过检查,在考虑“红色”列时应返回项目 6917529249201580539。考虑到所有组合列,项目 6917529249201580539、6917529246740186376、6917529212665335174 和 6917529316674574229 应作为未使用返回。

我会很感激和想法或指导。谢谢。

0 投票
2 回答
179 浏览

python - 带有变量的 Python 熊猫 ISIN

我可以动手使用 ISIN pandas 函数。基本上,我需要按年份根据不同的标准汇总数据框中的数据。问题是我需要对数据进行许多汇总(例如国家名称、资助计划等)。为了方便起见,我试图在 for 循环中执行此操作。下面是一个简化的例子:

在这里,我试图为每个国家和一对程序(ProgA 或 ProgB)创建一个列表。

aux = EABlock.loc[EABlock["Country"].isin([Ctry]) & EABlock["FundingSource"].isin([Prog]),["2020","2021","2022","2023","2024","2025","2026","2027","2028"]].agg(sum)

其中 Prog = ['ProgA', 'ProgB']

我得到了这个错误的结果(全为零):

相反,我写

aux = EABlock.loc[EABlock["Country"].isin([Ctry]) & EABlock["FundingSource"].isin(["ProgA", "ProgB"]),["2020","2021","2022","2023","2024","2025","2026","2027","2028"]].agg(sum)

我得到正确的结果:

更让我困惑的是,标准似乎完全相同:

我究竟做错了什么?

0 投票
2 回答
115 浏览

python - 如何修改一列中的多个值,但在pandas python中跳过其他值

在 python 中学习了两个月,我现在正专注于Pandas。在我目前的职位上,我在数据帧上使用 VBA,因此学习它以慢慢取代它并促进我的职业生涯。到目前为止,我相信我真正的问题是缺乏对关键概念的理解。任何帮助将不胜感激。

这就是我的问题:

我可以去哪里了解更多关于如何做这样的事情以获得更精确的过滤。我非常接近,但我需要一个关键方面。

目标

主要目标我需要跳过我的 ID 列中的某些值。 下面的代码去掉了破折号“-”,最多只能读取 9 位数字。但是,我需要跳过某些 ID,因为它们是唯一的。

之后,我将开始比较多张纸。

  • 主数据框 ID 的格式为 000-000-000-000
  • 我将比较它的其他数据帧没有破折号“-”作为 000000000 和三个减去 000 的总九位数。

我需要跳过的唯一 ID 在两个数据帧中是相同的,但格式完全不同,范围为 000-000-000_#12、000-000-000_35 或 000-000-000_z。

我将在每个 ID 上使用的代码(唯一 ID 除外):

但我想使用类似的 if 语句(这不起作用)

为了更清楚,我的输入 DataFrame 是这样的:

我希望将其作为输出:

笔记:

  • dfSS 是我的 Dataframe 变量名,也就是我正在使用的 excel。“ID”是我的列标题。事后将使其成为索引
  • 我在这项工作中的数据框很小,(行、列)的数量为(2500、125)
  • 我没有收到错误消息,所以我猜也许我需要某种循环。也开始测试循环。那里没有运气......但是。

这是我一直在研究这个的地方: