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

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
Pandas apply a function at fixed interval
float type column in pandas to convert to tuple/list
Getting an error with Pandas Panel boolean indexing
pandas dataframe subtraction causing nan
Pandas dataframe: truncate string fields
how to add new categorical column in pandas
Finding different Ids with the same value in pandas dataframe
Why can't iterrows do math - and instead returns integer values where these should be floats
How to merge/concatenate based on column multiindex? (Pandas)
Groupby function on pandas dataframe

Categories

HOME
maven
oracle11g
plone
syntax
sqlite-net-extensions
amazon-ecs
frameworks
packages
ip
serverspec
wamp
fancybox
cross-validation
windows-azure-storage
messages
clojurescript
ghc
foselasticabundle
wkwebview
excel-2007
jndi
firebase-crash-reporting
traffic
applozic
webkitspeechrecognition
vision
stormpath
bcd
titanium-mobile
winrt-xaml-toolkit
kendo-ui-grid
hybridauth
phpfreechat
xmlreader
ghost4j
serve
qwerty
serverside-rendering
abstract-class
vapor
ssjs
gpx
eclipse-gef
csound
windows-iot-core-10
chord-diagram
root-framework
cubes
azure-virtual-network
trash
mathematica-frontend
react-native-listview
hexdump
nessus
design-by-contract
cyclomatic-complexity
python-3.2
simple-framework
clipperlib
proj4js
javax.mail
asp.net-web-api-odata
bitcoinj
terminfo
castle
aapt
htmlcleaner
valuechangelistener
jboss-weld
c18
oam
flashvars
cassini-dev
anonymous-methods
browser-detection
dice
viewswitcher
custom-backend
mercurial-server
gnustep
locationlistener
file-comparison
yui-datatable
android-sdk-2.1
telerik-scheduler
subviews
audio-capture
uimenucontroller
thread-local-storage
procedural-music

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