当前位置: 首页 > 知识库问答 >
问题:

熊猫-获取行匹配条件[重复]的列值

闻人升
2023-03-14

我正在读熊猫的CSV文件。假设CSV如下所示:

column_1,column_2,column_3
1,2,value_1
1,3,value_2
2,1,value_3
2,2,value_4

我想从列_3(即值_2)中获取值,其中列_1=1列_2=3。我确信只有一行符合此条件。

所以我在做这样的事情:

df = pd.read_csv(...file...)
cond = (df['column_1'] == 1) & (df['column_2'] == 3)
...

我尝试了df.loc[cond,'column_3']来给我这个值,但是它返回了一个数据帧,索引是此行的行号。此处的行号不是0,而是1(即CSV文件中的原始行号),这不允许我执行df.loc[cond',column_3'][0]

如何在这里获得列值?

共有1个答案

缪远航
2023-03-14

这应该行得通:

import pandas as pd

data = {
    'column_1': [1, 1, 2, 2],
    'column_2': [2, 3, 1, 2],
    'column_3': ['value_1', 'value_2', 'value_3', 'value_4']
}

df = pd.DataFrame(data=data)

cond = (df['column_1'] == 1) & (df['column_2'] == 3)
result = df[cond].column_3.values[0]
result
 类似资料:
  • 给定一个列为“BoolCol”的数据帧,我们想要查找数据帧的索引,其中“BoolCol”的值 == True 我目前有一种迭代的方法来完成它,它非常有效: 但这不是熊猫的正确方法。经过一些研究,我目前正在使用以下代码: 这个给了我一个索引列表,但是它们不匹配,当我通过执行以下操作来检查它们时: 结果其实是假的!! 熊猫的正确做法是什么?

  • 我已经看到了将一个列/系列分解成熊猫数据框架的多个列这一主题的一些变体,但是我一直在尝试做一些事情,但是现有的方法并没有真正成功。 给定如下数据帧: 我想将系列中的项目转换为列,以 值作为值,如下所示: 我觉得这应该是一个相对简单的问题,但我已经为此努力了几个小时,不断增加的复杂程度,但没有成功。

  • (更新:添加了所需的 是长度为2的数列,而< code >((big[' match _ 1 ']/2)= = 0)是长度为4的数列。我要做的是,对于< code>big中的每一行,找到< code>small中基于条件匹配的一行。 如果我可以得到一个序列,其中包含与中的每一行匹配的中的正确行,那么我可以执行以下操作: 我的问题是:如何生成序列? 如果<code>big</code>和<code>

  • 在过去,我经常通过pandas数据帧计算条件语句,该数据帧将Y/N返回到1/0,然后计算并获得分数。不过,我想学习一种高级方法,用列表中较大的数据集实现计算。 这是我的代码: 输出: 但是这是针对3个列表(a, b, c)的index,但是我需要手动执行列表的其余索引。 如何为给定列表的所有索引自动执行? 当我在完整列表中使用这种格式时: 我得到这样的错误: 会感激任何帮助。

  • 我有一个熊猫数据框,如下所示,具有多个列,并希望获得列的总数。 我的尝试: 我试图使用和获取列的总和: 这会导致以下错误: 预期产出 我预计产出如下: 或者,我希望编辑< code>df,在标题为< code>TOTAL的新行中包含总计:

  • 我有一个 CSV 文件,其中包含名称和电子邮件列。我的目标是映射一个新列,即将列名分成两列,名字和姓氏。以下示例表。 将 老实说,我目前只能阅读关于熊猫的文件,我已经阅读了一些关于熊猫地图的文章,但是我还没有找到合适的。 谢谢。