Pandas:根据唯一值获取行中的相应列值

时间:2016-10-14 15:46:59

标签: python pandas

我已经想出如何获取我想要的信息,但如果没有更好,更易读的方法,我会感到惊讶。

我想在包含我指定的数据元素的行中的不同列中获取值。例如,'b'中的值与'a'中的值10相对应。

{% for item in users_model %}
        <tr>
          <td><a href="{% url 'profile' item.id %}">{{ item.username }}</a></td>
          <td>{{ item.newusermodel.posts }}</td>
          <td></td>
          <td></td>
        </tr>
        {% endfor %}

这就是我目前解决它的方法,但实际上我的数据框并没有如此简洁地命名,而且我的字符串也很长,因此该行很难阅读。

编辑:如果'a'中的值不唯一,还有办法获得'b'中的所有相应值吗?

1 个答案:

答案 0 :(得分:7)

您可以使用带有loc的布尔掩码来返回满足布尔条件的所有行,这里我们使用条件掩盖df,其中&#39; a&#39; == 11,如果符合要求,则返回&#39; b&#39;:

的所有值
In [120]:
df = pd.DataFrame({'a':[10,11,11],'b':np.arange(3), 'c':np.random.randn(3)})
df

Out[120]:
    a  b         c
0  10  0 -1.572926
1  11  1 -0.639703
2  11  2 -1.282575

In [121]:
df.loc[df['a'] == 11,'b']

Out[121]:
1    1
2    2
Name: b, dtype: int32