簡體   English   中英

如何在pandas數據框中查找具有正值和負值的行

[英]how to find rows with both positive and negative values in pandas dataframe

我有一個這樣的數據框:

     e_col   in_col     word_col      w_col
     31      9        algorithm    -0.053538
     31      9              ubc    -0.053578
     31      9              kth    -0.053595
     31      8              ubc    -0.053633
     30      8        algorithm     0.043637
     30      7             dale     0.053648
     28      6             dale     0.053671

我想在word_col找到同一word_col同時具有正值和負值的w_col

因此,例如,這里的輸出將是:

 31      9        algorithm    -0.053538
 30      8        algorithm     0.043637

編輯2 :您還可以使用transform避免set_index/reset_index ,如下所示:

m = df.w_col.lt(0).groupby(df.word_col).transform('nunique').eq(2)
df.loc[m]

Out[2768]:
   e_col  in_col   word_col     w_col
0     31       9  algorithm -0.053538
4     30       8  algorithm  0.043637

編輯1 :創建m一種較短方法是使用nunique() ,如下所示:

m =  df.w_col.lt(0).groupby(df.word_col).nunique().eq(2)

原件
請執行下列操作:上創建布爾面具w_col小於0groupby通過它word_col 接下來,在每個組上調用unique並找到len = 2的任何組。將此掩碼用作在df.set_indexreset_index上建立索引的掩碼。

m = df.w_col.lt(0).groupby(df.word_col).unique().str.len().eq(2)
df.set_index('word_col').loc[m].reset_index()

Out[2738]:
    word_col  e_col  in_col     w_col
0  algorithm     31       9 -0.053538
1  algorithm     30       8  0.043637

暫無
暫無

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

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