पांडस डेटाफ्रेम से डेटा का चयन करते समय, कभी-कभी एक दृश्य वापस आ जाता है और कभी-कभी एक प्रति वापस लौटा दी जाती है। हालांकि इसके पीछे कोई तर्क है, क्या पांडों को पर मजबूर करने का कोई तरीका है स्पष्ट रूप से कोई दृश्य या प्रतिलिपि वापस करें?पांडा में प्रतिलिपि के बजाय "दृश्य" की सेना वापसी?
उत्तर
आपके प्रश्न के दो भाग हैं: (1) एक दृश्य कैसे बनाएं (इस उत्तर के नीचे देखें), और (2) एक प्रतिलिपि कैसे बनाएं।
मैं कुछ उदाहरण डेटा के साथ प्रदर्शित होगी:
import pandas as pd
df = pd.DataFrame([[1,2,3],[4,5,6],[None,10,20],[7,8,9]], columns=['x','y','z'])
# which looks like this:
x y z
0 1 2 3
1 4 5 6
2 NaN 10 20
3 7 8 9
कैसे एक प्रतिलिपि बनाने के लिए: एक विकल्प स्पष्ट रूप से जो कुछ भी आपरेशन आप प्रदर्शन के बाद अपने DataFrame कॉपी करने के लिए है। उदाहरण के लिए, मान लीजिए कि हम पंक्तियों NaN की जरूरत नहीं है का चयन कर रहे:
df2 = df[~df['x'].isnull()]
df2 = df2.copy()
फिर, अगर आप आप पाएंगे कि संशोधनों मूल डेटा (DF) वापस करने के लिए प्रचार नहीं करते df2 में मानों को संशोधित, और कहा कि पांडा ने चेतावनी दी यह नहीं है कि
df2['x'] *= 100
# original data unchanged
print(df)
x y z
0 1 2 3
1 4 5 6
2 NaN 10 20
3 7 8 9
# modified data
print(df2)
x y z
0 100 2 3
1 400 5 6
3 700 8 9
नोट "एक मूल्य एक DataFrame से एक टुकड़ा की एक प्रति पर सेट किया जा करने की कोशिश कर रहा है": यदि आप एक प्रदर्शन स्पष्ट रूप से एक प्रतिलिपि बनाकर मारा लग सकता है।
चेतावनी कैसे अनदेखी करने के लिए: वैकल्पिक रूप से, कुछ मामलों में आप परवाह नहीं हो सकता है एक दृश्य या कॉपी लौटाया जाए या, क्योंकि आपका इरादा स्थायी रूप से डेटा को संशोधित करने और मूल डेटा के लिए वापस जाना कभी नहीं है। इस मामले में, आप चेतावनी को दबा सकते हैं और अपने रास्ते पर आसानी से जा सकते हैं (बस यह न भूलें कि आपने इसे बंद कर दिया है, और मूल डेटा आपके कोड द्वारा संशोधित या संशोधित नहीं किया जा सकता है, क्योंकि df2 हो सकता है या नहीं एक प्रति हो): पांडा परोक्ष विचारों जहां भी और कर देगा जब भी संभव:
pd.options.mode.chained_assignment = None # default='warn'
अधिक जानकारी के लिए कैसे एक दृश्य बनाने के लिए How to deal with SettingWithCopyWarning in Pandas?
पर जवाब देखते हैं। इसकी कुंजी df.loc[row_indexer,col_indexer]
विधि का उपयोग करना है। उदाहरण के लिए, केवल पंक्तियों जहां स्तंभ x
रिक्त नहीं है के लिए 100 से स्तंभ y
के मूल्यों गुणा करने के लिए, हम लिख होगा:
mask = ~df['x'].isnull()
df.loc[mask, 'y'] *= 100
# original data has changed
print(df)
x y z
0 1.0 200 3
1 4.0 500 6
2 NaN 10 20
3 7.0 800 9
jeffgoldblumthereitis.gif :-D – calben
यह उत्तर, निराशाजनक रूप से, बाकी इंटरनेट की तरह पूछे गए प्रश्न के विपरीत जवाब देता है। -1 –
सवाल यह था कि "पांडों को स्पष्ट रूप से एक दृश्य या प्रतिलिपि वापस करने के लिए मजबूर करने का कोई तरीका है?" जिस पर मैंने जवाब दिया कि स्पष्ट रूप से एक प्रतिलिपि कैसे बनाएं। मुझे लगता है कि निराशाजनक हिस्सा यह है कि यदि आप स्पष्ट रूप से इसके बजाय एक दृश्य चाहते थे? यह भी ध्यान रखें कि प्रश्न शीर्षक विवरण में प्रश्न से अलग है ... जो मदद नहीं करता है। – MD004
- 1. सेना कार्रवाई बार शो खोज दृश्य
- 2. C++ के बजाय कदम प्रतिलिपि
- 3. कौन फ़ंक्शन के वापसी मूल्य की प्रतिलिपि बनाता है?
- 4. पेड़ दृश्य नोड्स की गहरी प्रतिलिपि
- 5. पांडा विलय वापसी खाली dataframe
- 6. वापसी मूल्य की प्रतिलिपि बनाने से कैसे बचें
- 7. स्विफ्ट: सेना मोडल
- 8. अजगर पांडा: DataFrame बजाय सीरीज
- 9. यह बेहतर क्यों है (वापसी सूची के बजाय वापसी IList)?
- 10. वापसी प्रारंभकर्ता सूची के बजाय वेक्टर :: समारोह
- 11. MATLAB 'move' या '' प्रतिलिपि वापसी मूल्य 'होगा?
- 12. सेना लैरावेल विरासत प्रमाणीकरण
- 13. ऑब्जेक्ट की विधि की प्रतिलिपि प्रतिलिपि - प्रतिलिपि कौन करता है?
- 14. सेना विंडोज challege
- 15. एक उथली प्रतिलिपि कब वांछित है (एक गहरी प्रतिलिपि के बजाय)?
- 16. अजगर सेना सूची सूचकांक
- 17. वापसी मान के लिए प्रतिलिपि निर्माता होता है जब
- 18. सेना अजगर Scrapy यूआरएल
- 19. सिद्धांत manyToMany वापसी PersistentCollection बजाय ArrayCollection
- 20. स्पष्टता के लिए समारोह से बूल के बजाय वापसी enum?
- 21. वापसी के बजाय "जाओ" बटन के साथ आईओएस कीबोर्ड
- 22. कैश निर्देशिका में रीयलम फ़ाइल की प्रतिलिपि
- 23. विजुअल स्टूडियो में दृश्य चर के बिना दृश्य चर के प्रतिलिपि मूल्य
- 24. OpenERP हमेशा के बजाय विरासत में मिला है दृश्य मूल
- 25. रचनाकारों की प्रतिलिपि बनाएँ - सी ++
- 26. वापसी अगले() NodeJS भ्रम की स्थिति में
- 27. पर्ल वापसी के बजाय अपवाद को महत्व देता
- 28. वापसी टास्क टास्क <TResult> के बजाय TaskCompletionSource
- 29. सेना एक अवरुद्ध रोक AsyncTask
- 30. पांडा समूह की तारीख
आप एक दृश्य और एक प्रति के बीच अंतर का एक नमूना दे सकते हैं? – cwharland
नियमों के लिए यहां देखें: http://stackoverflow.com/questions/23296282/what-rules-does-pandas-use-to-generate-a-view-vs-a-copy –
@cwharland, मेरी समझ संशोधनों में है एक दृश्य में प्राथमिक डेटाफ्रेम (इसलिए एक संदर्भ) भी संशोधित करता है, और एक प्रति है ... एक प्रति। – calben