Extract rows from a data frame under certain conditions

pandas select rows by multiple conditions
r extract rows with certain value
r subset data frame multiple conditions
pandas filter rows by condition
pandas dataframe get cell value by condition
pandas count rows with condition
subset dataframe based on condition python
r select rows by condition

I have to filter my dataframe in relation to particular condition. Better if the solution contemplates the use of dplyr.

i have a dataframe structure like this

  sentId.   B.   label.   partner. code
    1.      2.     3.       4.      123
    1.      2.     2.       4.      124
    4.      2.     3.       8.      125
    7.      3.     2.       7.      126

If the column label contains a particular value (for example, 3.), collect not only that Row but also all the Rows that have the same sentID and partner value of the previous one.

The expected results is this:

  sentId.   B.   label.   partner. code
    1.      2.     3.       4.      123
    1.      2.     2.       4.      124
    4.      2.     3.       8.      125

We can use %in% to filter the rows after grouping by 'sentId.` and 'partner.'

library(dplyr)
df1 %>%
  group_by(sentId., partner.) %>%
  filter(3 %in% label.)
# A tibble: 3 x 5
# Groups:   sentId. [2]
#  sentId.    B. label. partner.  code
#    <dbl> <dbl>  <dbl>    <dbl> <int>
#1       1     2      3        4   123
#2       1     2      2        4   124
#3       4     2      3        8   125

Or in a compact way with data.table

library(data.table)
setDT(df1)[, .SD[3 %in% label.], .(sentId., partner.)]

Or with base R

df1[with(df1, ave(label.==3, sentId., partner., FUN = any)),]
data
df1 <- structure(list(sentId. = c(1, 1, 4, 7), B. = c(2, 2, 2, 3), label. = c(3, 
 2, 3, 2), partner. = c(4, 4, 8, 7), code = 123:126),
 class = "data.frame", row.names = c(NA, 
 -4L))

Extract rows from a data frame under certain conditions, We can use %in% to filter the rows after grouping by 'sentId.` and 'partner.' library​(dplyr) df1 %>% group_by(sentId., partner.) %>% filter(3  Selecting pandas dataFrame rows based on conditions. Method 1: Using Boolean Variables

We can first find out the row indices where we have our interested label value and then use those indices to subset sentId and partner values from the entire dataframe.

label_value <- 3
inds <- df$label == label_value
df[with(df, sentId %in% sentId[inds] & partner %in% partner[inds]), ]

#  sentId B label partner code
#1      1 2     3       4  123
#2      1 2     2       4  124
#3      4 2     3       8  125

The same logic in dplyr would be

library(dplyr)

df %>%
  filter(sentId %in% sentId[label == label_value] & 
         partner %in% partner[label == label_value])

Selecting rows in pandas DataFrame based on conditions , Let's see how to Select rows based on some conditions in Pandas DataFrame. Selecting rows based on particular column value using '>', '=', '=', '<=', '! Drop rows from the dataframe based on certain condition applied on a column Pandas provides a rich collection of functions to perform data analysis in Python. While performing data analysis, quite often we require to filter the data to remove unnecessary rows or columns.

This problem can easily be formulated using SQL, so one option would be to use the sqldf library:

library(sqldf)

# your data frame df
sql <- "SELECT t1.\"sentId.\", t1.\"B.\", t1.\"label.\", t1.\"partner.\", t1.code
        FROM yourTable t1
        WHERE t1.\"label.\" = '3.' OR
            EXISTS (SELECT 1 FROM yourTable t2
                    WHERE t1.\"sentId.\" = t2.\"sentId.\" AND
                          t1.\"partner.\" = t2.\"partner.\" AND
                          t2.\"label.\" = '3.')"

result <- sqldf(sql)

Demo

Note: The above demo actually uses MariaDB, because SQLite was not working with the demo tool. But it still shows that the query logic be correct.

Extract a subset of a data frame based on a condition involving a , So, in a nutshell, the question is: given a data frame foo, how can I create another data frame bar which only contains the rows from foo where  Selecting rows based on multiple column conditions using '&' operator. Code #1 : Selecting all the rows from the given dataframe in which ‘Age’ is equal to 21 and ‘Stream’ is present in the options list using basic method.

Using sqldf: It extracts sentID and partner with label 3 as two inner queries and fetches the result from it.

names(df) <- gsub("\\.", "", names(df)) # to remove . from column name
sqldf("select * from df where (sentID IN (select sentID from df where label IS 3) OR 
      partner IN (select partner from df where label IS 3))")

Output:

  sentId B label partner code
1      1 2     3       4  123
2      1 2     2       4  124
3      4 2     3       8  125

Subset Data Frame Rows in R, In this tutorial, you will learn the following R functions from the dplyr package: slice(): Extract rows by position; filter(): Extract rows that meet a certain logical criteria. Select DataFrame Rows Based on multiple conditions on columns. Select rows in above DataFrame for which ‘Sale’ column contains Values greater than 30 & less than 33 i.e. filterinfDataframe = dfObj[(dfObj['Sale'] > 30) & (dfObj['Sale'] < 33) ] It will return following DataFrame object in which Sales column contains value between 31 to 32,

Extract Rows/Columns from A Dataframe in Python & R, Some comprehensive library, 'dplyr' for example, is not considered. And I am trying First, let's extract the rows from the data frame in both R and Python. In R, it is done by Extract rows/columns by index or conditions. In our  Extract rows that meet criteria with Filter function In Excel, you can filter the rows meeting the criteria first, and then copy them to another location. 1. Select the range included headers you want to extract rows from, click Data > Filter to add the Filter icons beside headers.

Filtering a dataframe, If you want to combine several filters in subset function use logical operators: subset(data, D1 == "E" | D2 == "E"). will select those rows for  This article represents a command set in the R programming language, which can be used to extract rows and columns from a given data frame.When working on data analytics or data science projects

Subset Data Frame Rows by Logical Condition in , Subset Data Frame Rows by Logical Condition in R (5 Examples). In this tutorial We selected only rows where the group column is equal to “g1”. We did this by We can also use the dplyr package to extract rows of our data. First, we need  When extracting the column, we have to put both the colon and comma in the row position within the square bracket, which is a big difference from extracting rows. Extract rows/columns by index or conditions. In our dataset, the row and column index of the data frame is the NBA season and Iverson’s stats, respectively.

Comments
  • It is necessary to extend the groupBy also to the "partner" value. It works in that way. Thank you
  • @Silvia I added partner also
  • Note: The actual column names have dots in them, so you would have to escape them, using the particular syntax of your underlying database engine.
  • @TimBiegeleisen: Thanks for correcting me. Removing first . from column name to make it easier.