[英]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.