python - Pandas - 获取行匹配条件的列值

标签 python pandas

<分区>

我正在阅读 Pandas 中的 CSV 文件。假设CSV如下:

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

我想从 column_3 获取值(即 value_2),其中 column_1=1column_2=3。我确定只有 1 行符合此条件。

所以我正在做这样的事情:

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]

如何获取此处的列值?

最佳答案

这应该有效:

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

关于python - Pandas - 获取行匹配条件的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61964973/

相关文章:

python - 提高 Pandas 行 split 的效率

python - 如何解决从 LRU 缓存打印值并在一段时间后删除值时遇到的问题?

python - 将 Pandas DataFrame 中的 2 列与 .loc 进行比较

python - 将字符串添加到数据框两列中的重复字符串

python - Django 模板通过不同的外键进行循环迭代

python - 获取搜索词的行 - Notepad++ 的 Python 脚本

Python 测试如何运行参数化测试用例并将参数传递给 setupClass

python pandas数据框按日期条件切片

python - 给定一个代表值频率的 Pandas 系列,我如何将这些频率转换为百分比?

python - 循环遍历相应的行并更改数据框的值