How to filter pandas dataframe columns by partial label
By : Welty Visser
Date : March 29 2020, 07:55 AM
hop of those help? I am trying to filter pandas dataframe columns (with type pandas.core.index.Index) by a partial label. , possible solutions: code :
df.filter(regex='partial_lab.*')
idx = df.columns.to_series().str.startswith('partial_lab')
df.loc[:,idx]
|
Filter pandas (python) dataframe based on partial strings in a list
By : Foolish Frog
Date : March 29 2020, 07:55 AM
around this issue The pandas str.contains accepts regular expressions, which let's you test for any item in a list. Loop through each column and use str.contains: code :
startstrings = ['one', 'two']
pattern = '|'.join(startstrings)
for col in df:
if all(df[col].apply(type) == str):
#Set any values to 0 if they don't contain value
df.ix[~df[col].str.contains(pattern), col] = 0
else:
#Column is not all strings
df[col] = 0
A B C D
0 0 one1 0 0
1 0 one1 0 0
2 one1 two1 0 0
3 0 0 0 0
4 0 two1 0 0
5 one1 two1 0 0
6 0 one1 0 0
7 0 0 0 0
|
How to filter Pandas dataframe by a partial label
By : K. Nevin
Date : March 29 2020, 07:55 AM
it should still fix some issue Create a boolean mask, and filter accordingly, using boolean indexing/loc/isin/query/eval. code :
m = m = df.user_id.eq('101') & df.label.eq('1')
i = df[m].head(3)
j = df[~m]
df = pd.concat([i, j]).sort_index()
df
user_id comment label
0 100 First comment 0
1 101 Buy viagra 1
2 102 Second comment 0
3 101 Third comment 0
4 103 Fourth comment 0
5 101 Buy drugs 1
6 104 Fifth comment 0
7 101 Buy icecream 1
8 105 Sixth comment 0
|
Filter a pandas dataframe on multiple columns for partial string match, using values from a dict
By : Said Fannane
Date : March 29 2020, 07:55 AM
Hope that helps One solution can be using pd.Series.str.starstwith to find strings matching the ones in filters. You can create a mask for those rows this way: code :
mask = df.astype(str).apply(lambda x: x.str.lower()
).apply(lambda x: x.str.startswith(filters[x.name].lower()),
axis=0).all(axis=1)
df[mask]
country year pop continent lifeExp gdpPercap
11 Afghanistan 2007 31889923.0 Asia 43.828 974.580338
|
Filter Pandas Dataframe Columns by header containing multiple strings
By : user2181055
Date : November 09 2020, 04:01 AM
it should still fix some issue I have a dataframe and want to only show columns with headers containing a particular string(s). , Use: code :
L = ['BB','TP']
df.loc[:, df.columns.str.contains('|'.join(L)]
|