根据所有列值在熊猫中选择一行

站立的人

我想在 pandas 框架中找到一个特定的行(给定它的所有列值)。到目前为止我的尝试:


df = pd.DataFrame(
    columns = ["A", "B", "C"],
    data = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9],
        [10, 11, 12],
        ])

# row to find (last one)
row = {"A" : 10, "B" : 11, "C" : 12}

# chain
idx = df[(df["A"] == 10) & (df["B"] == 11) & (df["B"] == 11)].index[0]
print(idx)

# iterative
mask = pd.Series([True] * len(df))

for k, v in row.items():
    mask &= (df[k] == v)

idx = df[mask].index[0]
print(idx)

# pandas series
for idx in df.index:
    print(idx,  (df.iloc[idx,:] == pd.Series(row)).all())

有没有更简单的方法来做到这一点?idx = df.find(row)什么?

例如,通常需要此功能来定位时间序列中的一个特定样本。我不敢相信没有直接的方法可以做到这一点。

莫兹韦

你只是想要吗?

df[df.eq(row).all(1)] #.index # if the indices are needed

输出:

    A   B   C
3  10  11  12

或者,如果您有更多列并且想要忽略它们进行比较:

df[df[list(row)].eq(row).all(1)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫:从每一行的随机列中选择值

根据值和最早日期选择唯一行并保留所有列,R

在熊猫的DataFrame中选择第一行的值

熊猫:从前一行和不同列中选择值

根据熊猫列中的列表值从DataFrame中选择行

SQL Server:从同一列中具有匹配值的第一行之后的列中选择所有行

在一行代码中选择所有对象

从仅在一列中具有重复值的表中选择唯一行

熊猫,列出每一行的所有列均具有空值的列

根据我在同一行中选择的选项禁用输入,所有行均相同

在一行中选择具有多个值的 id

熊猫:根据最后一行中的值删除列

根据不同的列值但在同一行中选择一个数据集

如何评估熊猫数据框中一行的所有值并写入新列

根据输入在R的每一行中选择不同的列,并计算每行中大于0的值

根据一行中的值选择numpy列

根据列python的最大值选择一行

根据同一数据帧列表中某些列的值从熊猫数据帧中选择行?

熊猫-根据其他列的值从特定列中选择行值

从另一列中选择所有包含值的

熊猫从列中选择唯一值

在所有具有特定列值的行中选择一个唯一值

熊猫从每一行中选择一个特定的列

熊猫选择最后一行的值比

如何选择满足另一列熊猫条件的最小值的所有行

根据另一列中的值选择列的值,然后在熊猫数据框中的每一行应用该值

根据不同的列值选择一行(同一行)

如何根据另一列的最高值从一列中的几个相等值中选择一行?

根据熊猫中多列的值从数据框中选择行