दिलचस्प पोस्ट
जावा ओसीआर कार्यान्वयन ग्रहण में नोक्लसफफ़ाउंड एरर सी # में रीडोनली के रूप में क्षेत्र को चिह्नित करने के क्या लाभ हैं? होस्ट मशीन पर डॉककर छवियाँ कहां हैं? नियमित अभिव्यक्ति का उपयोग करते हुए बहुभाषी पाठ से मिलान करें मैं जावा में एक कस्टम फ़ॉन्ट का उपयोग कैसे कर सकता हूं? क्या आप jQuery में "ड्रैगिंग" का पता लगा सकते हैं? एक तत्व का पृष्ठभूमि रंग कोड कैसे प्राप्त करें? मैं यह निर्धारित करने के लिए एक Windows DLL फ़ाइल का परीक्षण कैसे कर सकता हूं कि यह 32 बिट या 64 बिट है? JQuery के साथ सिमुलेट कीप्रेस आप कैसे अमेज़ॅन लोचदार बीनस्टॉक (एडब्ल्यूएस ईबीएस) पर कस्टम पर्यावरण चर को पारित करते हैं? VB.Net में प्रत्येक फॉर्म का क्यों एक डिफ़ॉल्ट उदाहरण है, लेकिन सी # में नहीं है? क्यों mysqli num_rows हमेशा 0 वापस आता है? अजगर में, क्यों कोई फ़ंक्शन कॉलर द्वारा माना गया कुछ तर्कों को संशोधित कर सकता है, लेकिन अन्य नहीं? समानांतर में दो सूचियों के माध्यम से कैसे पुनरावृत्त करें?

पांडा डेटाफ़्रेम में विशेष सेल के लिए मूल्य निर्धारित करें

मैंने एक पांडा डेटाफ्रेम बनाया है

df=DataFrame(index=['A','B','C'], columns=['x','y']) 

और यह मिला

     xy
 एक नाएन नाएन
 बी नाएन नाएन
 सी नाएन नाएन

फिर मैं विशेष कक्ष के लिए मूल्य असाइन करना चाहता हूं, उदाहरण के लिए पंक्ति 'सी' और स्तंभ 'x' के लिए मुझे ऐसा परिणाम मिलने की उम्मीद है:

     xy
 एक नाएन नाएन
 बी नाएन नाएन
 सी 10 एनएएन

इस कोड के साथ:

 df.xs('C')['x']=10 

लेकिन डीएफ की सामग्री में बदलाव नहीं हुआ है। यह फिर से केवल नैन के डेटाफ्रेम में है

कोई सुझाव?

वेब के समाधान से एकत्रित समाधान "पांडा डेटाफ़्रेम में विशेष सेल के लिए मूल्य निर्धारित करें"

RukTech का उत्तर , df.set_value('C', 'x', 10) , मेरे द्वारा सुझाए गए विकल्पों की तुलना में बहुत दूर और दूर है। हालांकि, यह नापसंदगी के लिए पेश किया गया है

आगे जा रहा है, सुझाई गई विधि है .iat/.at


क्यों df.xs('C')['x']=10 काम नहीं करता है:

डिफ़ॉल्ट रूप से df.xs('C') , डेटा की एक प्रति के साथ एक नया df.xs('C') देता है, इसलिए

 df.xs('C')['x']=10 

केवल इस नए डेटाफ्रेम को संशोधित करता है

df['x'] df डेटाफ्रेम का एक दृश्य देता है, इसलिए

 df['x']['C'] = 10 

df खुद को संशोधित करता है

चेतावनी : कभी-कभी यह भविष्यवाणी करना मुश्किल है कि क्या कोई ऑपरेशन प्रति या कोई दृश्य देता है इस कारण से डॉक्स "चेन इंडेक्सिंग" के साथ असाइनमेंट से बचने की सलाह देते हैं ।


इसलिए अनुशंसित विकल्प है

 df.at['C', 'x'] = 10 

जो df को संशोधित करता है


 In [18]: %timeit df.set_value('C', 'x', 10) 100000 loops, best of 3: 2.9 µs per loop In [20]: %timeit df['x']['C'] = 10 100000 loops, best of 3: 6.31 µs per loop In [81]: %timeit df.at['C', 'x'] = 10 100000 loops, best of 3: 9.2 µs per loop 

ऐसा करने का सबसे तेज़ तरीका set_value का उपयोग कर रहा है इस विधि की तुलना में ~ 100 गुना तेज है। विधि विधि उदाहरण के लिए:

df.set_value('C', 'x', 10)

मूल्य निर्धारित करने के लिए अनुशंसित तरीके (अनुरक्षणकर्ताओं के अनुसार) है:

 df.ix['x','C']=10 

'चेन इंडेक्सिंग' ( df['x']['C'] ) का प्रयोग करने से समस्याएं हो सकती हैं

देख:

आप .loc का उपयोग करके सशर्त लुक अप का उपयोग भी कर सकते हैं जैसा कि यहां देखा गया है:

 df.loc[df[<some_column_name>] == <condition>, <another_column_name>] = <value_to_add> 

जहां <some_column_name वह कॉलम है जिसे आप <condition> चर के विरुद्ध जांचना चाहते हैं और <another_column_name> वह कॉलम है जिसे आप जोड़ना चाहते हैं (एक नया कॉलम हो सकता है या जो पहले से मौजूद है)। <value_to_add> वह मान है जिसे आप उस स्तंभ / पंक्ति में जोड़ना चाहते हैं

इस उदाहरण को हाथ में प्रश्न के साथ ठीक से काम नहीं करता है, लेकिन यह उपयुक्त हो सकता है क्योंकि कोई शर्त किसी शर्त के आधार पर एक विशिष्ट मूल्य जोड़ना चाहता है।

df.loc[row_index,col_indexer] = value का उपयोग करने का प्रयास करें

यह केवल एक चीज है जो मेरे लिए काम करती है!

 df.loc['C', 'x'] = 10 

.loc बारे में अधिक जानें यहाँ ।

आप उपयोग कर सकते हैं

df.iloc [[2], [0]] = 10

मैं भी इस विषय की तलाश कर रहा था और मैं एक डाटाफ्रेम के माध्यम से दोबारा और एक दूसरे डेटाफ़्रेम से लुकअप मूल्यों के साथ इसे अपडेट करने का एक तरीका रखा। यहाँ मेरा कोड है

 src_df = pd.read_sql_query(src_sql,src_connection) for index1, row1 in src_df.iterrows(): for index, row in vertical_df.iterrows(): src_df.set_value(index=index1,col=u'etl_load_key',value=etl_load_key) if (row1[u'src_id'] == row['SRC_ID']) is True: src_df.set_value(index=index1,col=u'vertical',value=row['VERTICAL'])