簡體   English   中英

Pandas:根據唯一值獲取行中對應的列值

[英]Pandas: Get corresponding column value in row based on unique value

我已經想出如何獲取我想要的信息,但如果沒有更好、更易讀的方法,我會感到驚訝。

我想獲取包含我指定的數據元素的行中不同列中的值。 例如,與列b中的值11相對應的 b 列中a值是多少。

>>> df
    a   b   c
0  10  20  30
1  11  21  31
2  12  22  32

>>> df['b'][df[df['a'] == 11].index.tolist()].tolist()
[21]

這就是我目前解決它的方法,但實際上我的數據框並沒有這么簡潔地命名,而且我有很長的字符串作為列名,所以這行很難閱讀。

編輯:如果'a'中的值不是唯一的,是否還有一種方法可以獲取'b'中的所有對應值?

您可以使用帶有loc的布爾掩碼來返回滿足布爾條件的所有行,這里我們用“a”==11 的條件來掩碼 df,並且在滿足條件的地方返回“b”的所有值:

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

您可以使用 loc 返回滿足條件的所有行。 此代碼將為您提供與滿足條件的行對應的確切值。

result=df.loc[df['a'] == 11,'b'].values[0]
print(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM