Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #75492
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <python-python-list@m.gmane.org> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.000 |
| X-Spam-Evidence | '*H*': 1.00; '*S*': 0.00; 'from:addr:yahoo.co.uk': 0.04; 'column': 0.07; 'only,': 0.07; 'welcome.': 0.07; 'string': 0.09; "'a'": 0.09; 'lawrence': 0.09; 'pointers': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'seemed': 0.09; 'spelling': 0.09; 'language.': 0.14; "'a',": 0.16; "'b',": 0.16; '0))': 0.16; 'bool': 0.16; 'boolean': 0.16; 'bullet': 0.16; 'dict': 0.16; 'lowercase': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'scientists': 0.16; 'subject:expression': 0.16; 'uppercase': 0.16; "{'a':": 0.16; 'language': 0.16; 'wrote:': 0.18; 'bit': 0.19; 'alex': 0.19; 'appears': 0.22; 'aug': 0.22; 'header:User-Agent:1': 0.23; 'sorry,': 0.24; 'earlier': 0.24; 'question': 0.24; "i've": 0.25; 'this:': 0.26; 'header:X-Complaints-To:1': 0.27; 'van': 0.27; 'header:In-Reply-To:1': 0.27; 'tried': 0.27; 'code': 0.31; 'keys': 0.31; 'names.': 0.31; 'steven': 0.31; 'there.': 0.32; 'fri,': 0.33; 'actual': 0.34; 'problem': 0.35; "can't": 0.35; 'tool': 0.35; 'but': 0.35; 'there': 0.35; 'reality': 0.36; 'whilst': 0.36; 'subject:?': 0.36; 'too': 0.37; 'being': 0.38; 'sometimes': 0.38; 'to:addr:python-list': 0.38; 'fact': 0.38; 'itself': 0.39; 'to:addr:python.org': 0.39; 'enough': 0.39; 'received:org': 0.40; 'how': 0.40; 'expression': 0.60; "you're": 0.61; 'first': 0.61; 'our': 0.64; 'more': 0.64; 'holding': 0.65; 'charset:windows-1252': 0.65; 'here': 0.66; 'approaches': 0.68; 'therefore': 0.72; 'theoretical': 0.74; 'forth': 0.81; 'literally.': 0.84 |
| X-Injected-Via-Gmane | http://gmane.org/ |
| To | python-list@python.org |
| From | Mark Lawrence <breamoreboy@yahoo.co.uk> |
| Subject | Re: dict to boolean expression, how to? |
| Date | Fri, 01 Aug 2014 17:12:59 +0100 |
| References | <53db8bd8$0$2976$e4fe514c@news2.news.xs4all.nl> <53dba39e$0$2976$e4fe514c@news2.news.xs4all.nl> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=windows-1252; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Gmane-NNTP-Posting-Host | host-78-147-28-172.as13285.net |
| User-Agent | Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
| In-Reply-To | <53dba39e$0$2976$e4fe514c@news2.news.xs4all.nl> |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.15 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.12520.1406909597.18130.python-list@python.org> (permalink) |
| Lines | 72 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1406909597 news.xs4all.nl 2916 [2001:888:2000:d::a6]:39130 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | csiph.com comp.lang.python:75492 |
Show key headers only | View raw
On 01/08/2014 15:26, Alex van der Spek wrote:
> On Fri, 01 Aug 2014 12:45:12 +0000, Alex van der Spek wrote:
>
>> With a dict like so:
>>
>> cond = {'a': 1, 'b': 1, 'c': 1,
>> 'A': 0, 'B', 0, 'C':0}
>>
>> how would you make a boolean expression like this:
>>
>> bool = (('a' == 1) & ('A' == 0) |
>> ('b' == 1) & ('B' == 0) |
>> ('c' == 1) & ('C' == 0))
>>
>> The fact that lowercase and uppercase keys are stringed together with &
>> is intentional albeit the actual condition is a bit more tricky.
>>
>> I've tried several approaches using eval() on a string built from the
>> dict but landed with just spelling it out literally.
>>
>>
>> Any pointers welcome.
>> Alex
>
> I am sorry, the problem is ill posed.
>
> 'a', 'A' and so forth are my failed attempt to shorthand.
>
> In reality the dict's keys are column names in a pandas dataframe df.
>
> The boolean expression would therefore look like:
>
> bool = ((df['a'] == 1) & (df['A'] == 0) |
> (df['b'] == 1) & (df['B'] == 0) |
> (df['c'] == 1) & (df['C'] == 0))
See this
http://stackoverflow.com/questions/19482970/python-get-list-from-pandas-dataframe-column-headers
to get the column names. Combine this with Steven D'Aprano's earlier
answer using any() and I suspect you're there.
>
> I do know eval() lends itself to code injection but can't say I am
> fully aware of its dangers. It seemed like a handy tool to me.
It strikes me as being like looking down the gun barrel to see if
there's a bullet loaded whilst holding the trigger. Best avoided but
there's always the "consenting adults" approach here :)
>
> This newsgroup scares me, it appears to be for professional computer
> scientists only, the theoretical part is sometimes too much for this
> practical physicist with an old background in FORTRAN.
If you're smart enough to state that your first question was ill posed,
you're smart enough to ask questions when you don't understand.
>
> Is there a better place to ask questions of this nature?
No :)
>
> Alex van der Spek
>
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
dict to boolean expression, how to? Alex van der Spek <zdoor@xs4all.nl> - 2014-08-01 12:45 +0000
Re: dict to boolean expression, how to? Chris Angelico <rosuav@gmail.com> - 2014-08-01 23:04 +1000
Re: dict to boolean expression, how to? Roy Smith <roy@panix.com> - 2014-08-01 09:24 -0400
Re: dict to boolean expression, how to? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-01 13:28 +0000
Re: dict to boolean expression, how to? Roy Smith <roy@panix.com> - 2014-08-01 09:32 -0400
Re: dict to boolean expression, how to? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-01 15:02 +0000
Re: dict to boolean expression, how to? Terry Reedy <tjreedy@udel.edu> - 2014-08-01 18:16 -0400
Re: dict to boolean expression, how to? Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-01 16:50 +0100
Re: dict to boolean expression, how to? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-01 16:35 +0000
Re: dict to boolean expression, how to? Alex van der Spek <zdoor@xs4all.nl> - 2014-08-01 14:26 +0000
Re: dict to boolean expression, how to? marco.nawijn@colosso.nl - 2014-08-01 08:07 -0700
Re: dict to boolean expression, how to? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-01 15:24 +0000
Re: dict to boolean expression, how to? Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-01 17:03 +0100
Re: dict to boolean expression, how to? Peter Otten <__peter__@web.de> - 2014-08-01 17:44 +0200
eval [was Re: dict to boolean expression, how to?] Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-02 02:59 +0000
Re: eval [was Re: dict to boolean expression, how to?] Peter Otten <__peter__@web.de> - 2014-08-02 09:43 +0200
Re: eval [was Re: dict to boolean expression, how to?] Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-02 08:59 +0100
Re: eval [was Re: dict to boolean expression, how to?] Duncan Booth <duncan.booth@invalid.invalid> - 2014-08-05 11:57 +0000
Re: eval [was Re: dict to boolean expression, how to?] Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-06 02:25 +1000
Re: dict to boolean expression, how to? Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-01 17:12 +0100
Re: dict to boolean expression, how to? Peter Pearson <ppearson@nowhere.invalid> - 2014-08-01 17:00 +0000
Re: dict to boolean expression, how to? Ned Batchelder <ned@nedbatchelder.com> - 2014-08-01 10:29 -0400
csiph-web