簡體   English   中英

從基於數組列的pandas.dataframe中進行選擇

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

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.

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