pandas


Filtering columns in dataframe that begin with a specific string


I have the following df, and I would like to apply a filter over the column names and simply remain those that begin with a certain string:
This is my current df:
ruta2:
Current SAN Prev.1m SAN Prev.2m SAN Prev.3m SAN Current TRE \
A 5 6 7 6 3
B 6 5 7 6 6
C 12 11 11 11 8
Basically what I would like is to filter the dataframe and remain the columns that begin with Current.
Then the desired output would be:
ruta2:
Current SAN Current TRE
A 5 3
B 6 6
C 12 8
In order to do this I tried this filter but outputs a value error :
ruta2=ruta2[~(ruta2.columns.str[:4].str.startswith('Prev'))]
It seems you only need:
ruta2=ruta2.loc[:, ~(ruta2.columns.str[:4].str.startswith('Prev'))]
#same as
#ruta2=ruta2.loc[:, ~ruta2.columns.str.startswith('Prev')]
print (ruta2)
Current SAN Current TRE
A 5 3
B 6 6
C 12 8
Or:
cols = ruta2.columns[ ~(ruta2.columns.str[:4].str.startswith('Prev'))]
ruta2=ruta2[cols]
print (ruta2)
Current SAN Current TRE
A 5 3
B 6 6
C 12 8
But if need only Current columns use filter (^ means start of string in regex):
ruta2=ruta2.filter(regex='^Current')
print (ruta2)
Current SAN Current TRE
A 5 3
B 6 6
C 12 8
#filter the columns names starting with 'Current'
ruta2[[e for e in ruta2.columns if e.startswith('Current')]]
Out[383]:
Current SAN Current TRE
A 5 3
B 6 6
C 12 8
Or you can use a mask array to filter columns:
ruta2.loc[:,ruta2.columns.str.startswith('Current')]
Out[385]:
Current SAN Current TRE
A 5 3
B 6 6
C 12 8

Related Links

Creating two dictionary variables within an iteration with unique names
Pandas: append column values as new rows
Jupyter: pandas pretty describe function wrapped in if statement not possible?
Creating a (multi) Line Plot from Pandas Dataframe?
Dataframes, csv, and CNTK
change value (string manipulation) in Pandas DataFrame
Trying to implement networkx into graphicsscene
Merge two data frames based on common column values in Pandas
Combine two columns of numbers in dataframe into single column using pandas/python
Python Pandas has low CPU usage and not using all cores
Pandas Set on copy warning when using .loc
Merge very large csv using pandas or awk
seasonal_decompose: operands could not be broadcast together with shapes on a series
How to properly sample from a numpy.random.multivariate_normal (positive-semidefinite covariance matrix issue)
how to do logical operation between dataframe columns?
Console hangs up at the time of plotting

Categories

HOME
vbscript
listview
smarty
json.net
iot
relayjs
rsync
jira
spring-cloud-stream
rdf
indesign
constraint-programming
reveal.js
systemc
openrefine
normalizr
nhibernate-envers
accessor
restful-authentication
trading
h2db
numerical-methods
linkerd
social-media
xacml
compatibility
quote
newline
directx-10
junit5
contact-form
kendo-ui-grid
openoffice.org
atl
catalog
suricata
ssjs
ansible-playbook
leading-zero
reportingservices-2005
texmaker
powershell-dsc
isbn
unixodbc
import-from-excel
angular2-meteor
galleria
cubic-spline
togetherjs
yii2-extension
google-perftools
ifs
titanium-android
minimization
vtigercrm
smart-table
rotativa
ado.net-entity-data-model
file-writing
gridview-sorting
multiple-regression
make-install
captivenetwork
oauth2client
freedesktop.org
javax.sound.midi
cartesian-product
mutation-observers
sailfish-os
cisco-ios
oberon
web-controls
csquery
rdtsc
xojo
project-planning
responsive-slides
wp-query
undefined-reference
jboss-weld
concurrent-collections
page-layout
sqlperformance
e4x
pvrtc
trusted
bluepill
viewswitcher
qtkit
reddot
amazon-appstore
inotifycollectionchanged
gallio
mozilla-prism
nsviewanimation
castle-monorail
javap
sustainable-pace
zune

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App