[英]selecting from a pandas.dataframe based on a column of arrays
我有一個數據框,其中包含一個包含數組的列(所有1x9數組)。 對於該列中的所有行,我希望找到第三個元素為1的那些行,並從相應行中的另一列中選擇值。 例如,我希望選擇'cal_nCa'值(116),其中info_trig中的第二個元素是0
info_trig cal_nCa
0 [0, 1, 0, 0, 0, 0, 0, 0, 0] 128
1 [0, 1, 0, 0, 0, 0, 0, 0, 0] 79
2 [0, 0, 0, 1, 0, 0, 0, 1, 0] 116
3 [0, 1, 0, 0, 0, 0, 0, 0, 0] 82
我在df["A"][(df["B"] > 50)]
基礎上嘗試了一些基於pandas.DataFrame中復雜條件的選擇 。
選擇所需的行時:
data["info_trig"][:][3]
我只成功選擇了該行中的特定行和第三個元素。 但無法選擇每一行中的所有第三個元素。 循環可以工作,但我希望有一個更清潔的出路。
使用str
訪問列第3個位置值
data["info_trig"].str[3]
data.apply(lambda x: x['cal_nCa'] if x['info_trig'][1] == 0 else 0, axis = 1)
這將返回一個系列,僅停留在價值cal_nCa
當第二個元素值info_trig
是0
:
0 0
1 0
2 116
3 0
dtype: int64
或者您只能通過此選擇所需的行:
data[data.apply(lambda x: True if x['info_trig'][1] == 0 else False, axis = 1)]
希望它會對你有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.