2015-01-09 12 views
6

के साथ एक पांडा dataframe में सभी स्तंभों में सभी मूल्य को बदलने के लिए मैं निम्नलिखित डेटा फ्रेम है:कैसे हालत

In [11]: import pandas as pd 

In [12]: mydict = {'foo':[0, 0.3], 'bar':[1,0.55], 'qux': [0.3,4.1]} 

In [13]: df = pd.DataFrame.from_dict(mydict, orient='index') 

In [14]: df 
Out[14]: 
     0  1 
qux 0.3 4.10 
foo 0.0 0.30 
bar 1.0 0.55 

मुझे क्या करना चाहते है सभी मूल्यों है कि कम से कम 0. साथ 1 को बदलने के लिए उपज:

 0  1 
qux 0  4.10 
foo 0  0 
bar 1.0 0 

मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

6

बूलियन अनुक्रमण का प्रयोग करें और हालत पारित:

In [155]: 
df[df<1] = 0 
df 
Out[155]: 
    0 1 
bar 1 0.0 
foo 0 0.0 
qux 0 4.1 

बस दिखाने के लिए यहाँ क्या हो रहा है df < 1 प्रदर्शन कर एक बूलियन सूचकांक वापस आ जाएगी:

In [156]: 
df < 1 
Out[156]: 
     0  1 
bar False True 
foo True True 
qux True False 

यह हम तो एक मुखौटा के रूप में df को पारित और फिर df[df<1] के रूप में नए मानों को docs देखें और

+0

आप यह कैसे करते हैं लेकिन नहीं टी जगह में? –

+0

@ ओ.र्का मैं आपके प्रश्न को समझ नहीं पा रहा हूं, यदि आप परिणाम असाइन नहीं करते हैं तो डीएफ – EdChum

+0

को म्यूटेट नहीं करता है। बहुत से फ़ंक्शंस में जगह = गलत है जो मूल ऑब्जेक्ट को नहीं बदलता है। क्या इसके साथ एक समान तरीका है? –