问题标签 [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.
python - 遍历列以匹配 dict 值
我有一个类似的字典:
和 df 有两列;具有多个字符串的文本列:
如果文本列中的任何字符串与 dict.values 匹配,我想使用 dict 中的密钥对向 df 添加额外的列,因此对于 a - color / b - fruits / c - animal。
我正在尝试使用isin
列表,但认为使用 dict 可能会更有效。?任何帮助表示赞赏
python - 根据不同的列值选择多行
我正在尝试根据分类评估一些图像。我使用下面的代码来读取 csv 文件:
所以我有一些看起来像这样的东西:
因此,如果我想保留值为“Green”的图像,输出应如下所示:
这意味着当至少有一个我检查的元素位于最后一列时,我想在第一列中保留具有相同 id 的图像。
我使用了该isin
方法,但我不知道如何将图像保留在其余行中,这些图像至少在最后一列中具有“绿色”值。
python - 如何保留具有共同列值的多个数据框中的行?
假设我有多个数据框:
如何创建一个新的 df 只包含列中有值的行A
并且B
在同一日期时间?我尝试使用该isin
功能:
但这仅进行单向检查,即仅保留同时A
存在 的值的值,但如果日期时间中不存在的额外值则保留在 df2 中。B
datetime
B
A
我可以在相反的方向重复操作来解决这个问题:
但是对于 >2 个数据帧(我目前的工作中大约有 50 个),这变得非常冗长且效率低下,因为有必要遍历整个数据帧集之间的每一个可能的配对组合。例如,首先需要对照 df1 和 df2 检查第三个数据帧 df3,但如果它包含既不存在于 df1 也不存在于 df2 中的日期时间,那么 df1 和 df2 将依次需要对照 df3 重新检查。
所需的输出是重新定义所有数据帧,以便它们仅包含具有匹配日期时间值的A
、等值。B
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() 但我似乎对第一类的正确陈述感到困惑。
python - 将其与列表值进行比较后从数据框中保存值 - Python
我正在尝试将列表中的值与数据框列的值进行比较。如果两者相等,我想保存数据框的整行。我无法编写指令来保存数据帧的整行。
以下是数据框和列表的一些数据:
我开始写的代码如下:
我得到的结果是不对的。
这里有什么问题?
谢谢你的建议
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 值但有些为零的测试数据框?
python - .isin() 比 .query() 快吗
问题:
你好,
在搜索选择数据框的方法时(对 Pandas 相对缺乏经验),我有以下问题:
对于大型数据集,什么更快 - .isin() 或 .query()?
Query 阅读起来更直观一些,因此由于我的工作,我更喜欢这种方法。但是,在一个非常小的示例数据集上对其进行测试,查询似乎要慢得多。
有没有人以前正确测试过这个?如果有,结果如何?我搜索了网络,但找不到关于此的其他帖子。
请参阅下面的示例代码,它适用于 Python 3.8.5。
非常感谢您的帮助!
代码:
python - 如何生成两个数据框之间未共享的项目列表
基本上,我有一堆按颜色(项目)分类的独特项目的单一列表。我做了一些事情并使用这些独特项目(组合)的选定组合生成一个数据框。我的目标是列出原始列表中未出现在组合数据框中的项目。理想情况下,我想检查所有四个颜色列,但对于我的初始测试,我只选择了“红色”列。
我的第一次尝试是使用下面的行,但这会引发执行错误“KeyError:'Id'”。一个论坛帖子表明可能会解决它,但这drop=True
在set_index
我的情况下似乎不起作用。
我试图通过使用这条线来解决它。在执行时,它会生成一个空数据框。仅通过检查,在考虑“红色”列时应返回项目 6917529249201580539。考虑到所有组合列,项目 6917529249201580539、6917529246740186376、6917529212665335174 和 6917529316674574229 应作为未使用返回。
我会很感激和想法或指导。谢谢。
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)
我得到正确的结果:
更让我困惑的是,标准似乎完全相同:
我究竟做错了什么?
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)
- 我没有收到错误消息,所以我猜也许我需要某种循环。也开始测试循环。那里没有运气......但是。
这是我一直在研究这个的地方: