This article mainly gives you a detailed explanation of the example code for excluding specific rows in pandas.DataFrame in python. The article gives detailed example code. I believe it has certain reference value for everyone's understanding and learning. Friends who need it can come and take a look below.
pandas.DataFrame excludes specific rows
If we want to filter only one or certain rows like Excel, we can use isin( )
method, pass in the values of the required rows in a list, you can also pass in a dictionary and specify columns for filtering.
But if we only want all content that does not contain a specific line, there is no isnotin()
method. I encountered such a requirement at work today. After searching frequently, I found that I could only use isin()
in another way to achieve this requirement.
The example is as follows:
In [3]: df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB' ...: , 'AH'], ['HEN', 'HEN', 'HLJ'], ['SH', 'TJ', 'CQ']], columns=['p1', 'p2 ...: ', 'p3']) In [4]: df Out[4]: p1 p2 p3 0 GD GX FJ 1 SD SX BJ 2 HN HB AH 3 HEN HEN HLJ 4 SH TJ CQ
If you only want the two rows where p1 is GD and HN, you can do this:
In [8]: df[df.p1.isin(['GD', 'HN'])] Out[8]: p1 p2 p3 0 GD GX FJ 2 HN HB AH
But if we want To get data other than these two rows, you need to take a detour.
The principle is to first take out p1 and convert it into a list, then remove unnecessary rows (values) from the list, and then use isin()
in the DataFrame
In [9]: ex_list = list(df.p1) In [10]: ex_list.remove('GD') In [11]: ex_list.remove('HN') In [12]: ex_list Out[12]: ['SD', 'HEN', 'SH'] In [13]: df[df.p1.isin(ex_list)] Out[13]: p1 p2 p3 1 SD SX BJ 3 HEN HEN HLJ 4 SH TJ CQ
Related articles:
About pandas.DataFrame in python to sum rows and columns and add new rows and columns sample code
The above is the detailed content of Detailed explanation of the sample code of pandas.DataFrame method of excluding specific rows in python. For more information, please follow other related articles on the PHP Chinese website!