दिलचस्प पोस्ट
रूबी ब्लॉक से कैसे बाहर निकलना है? गतिशील एसक्यूएल (पैरामीटर के रूप में तालिका का नाम देना) Xcode 6 स्विफ्ट कोड पूरा नहीं कर रहा है क्या फेसबुक sharer.php अब विस्तृत मापदंडों को स्वीकार नहीं कर पाई है? ताज़ा होने के दौरान, जब भी स्वाइपफ़िफास लेआउट के साथ स्विच टुकड़ा, टुकड़ा फ्रीज होता है, लेकिन वास्तव में अभी भी काम करते हैं एंड्रॉइड नरम कीबोर्ड एजटस्टिक्स क्षेत्र को कवर करता है पार्सिंग प्रदर्शन (यदि, ट्रायप्रॉर्स, टच-कैच) स्क्रॉल करने पर, संभवतः जावास्क्रिप्ट और सीएसएस का उपयोग करते हुए मैं पहली पंक्ति और तालिका का पहला कॉलम कैसे लॉक कर सकता हूं? मान्य प्लगइन jquery का उपयोग करके इनपुट की सरणी कैसे मान्य करें जब मेरी खोल स्क्रिप्ट निकल जाए तो मैं पृष्ठभूमि प्रक्रियाओं / नौकरियों को कैसे मारूं? जावास्क्रिप्ट में क्या उपयोग किया जाता है? मैं न्यूलाइंस या रिक्त स्थान जोड़ने से कैसे पायथन प्रिंट रखूं? एएसपी.नेट में फ़ाइलों को स्ट्रीम करने का सर्वोत्तम तरीका Windows पर किसी शेड्यूल किए गए कार्य के माध्यम से यूआरएल लोड करने की सिफारिश की गई विधि सी # स्वत: पूर्ण

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

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

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'])