पांडास डेटाफ़्रेम की प्रतिलिपि कैसे (और क्यों) बनाएं


हर बार जब आप पांडा डेटाफ़्रेम का एक उपसमूह बनाते हैं और फिर उपसमूह को संशोधित करते हैं, तो मूल डेटाफ़्रेम भी संशोधित हो जाएगा।

इस कारण से, सब्सेटिंग करते समय .copy() का उपयोग करना हमेशा एक अच्छा विचार है ताकि आपके द्वारा सब्सेट में किए गए परिवर्तन मूल डेटाफ़्रेम में भी न किए जाएं।

निम्नलिखित उदाहरण दिखाते हैं कि सब्सेटिंग करते समय पांडा डेटाफ़्रेम की प्रतिलिपि कैसे (और क्यों) बनाई जाए।

उदाहरण 1: बिना कॉपी के डेटाफ़्रेम को सब्सेट करना

मान लीजिए हमारे पास निम्नलिखित पांडा डेटाफ़्रेम हैं:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]})

#view DataFrame
print (df)

  team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

अब मान लीजिए कि हम एक उपसमुच्चय बनाते हैं जिसमें मूल डेटाफ़्रेम की केवल पहली चार पंक्तियाँ होती हैं:

 #define subsetted DataFrame
df_subset = df[0:4]

#view subsetted DataFrame
print (df_subset)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6

यदि हम उपसमूह में कोई भी मान बदलते हैं, तो मूल डेटाफ़्रेम का मान भी बदल जाएगा:

 #change first value in team column
df_subset. team [0] = ' X '

#view subsetted DataFrame
print (df_subset)

  team points assists
0X18 5
1 B 22 7
2 C 19 7
3 D 14 9

#view original DataFrame
print (df)

  team points assists
0X18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

ध्यान दें कि टीम कॉलम का पहला मान सबसेट डेटाफ़्रेम और मूल डेटाफ़्रेम दोनों में “ए” से “एक्स” में बदल दिया गया था।

ऐसा इसलिए है क्योंकि हमने मूल डेटाफ़्रेम की प्रतिलिपि नहीं बनाई है।

उदाहरण 2: डेटाफ़्रेम को कॉपी के साथ सब्सेट करना

आइए फिर से मान लें कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम हैं:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]})

#view DataFrame
print (df)

  team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

आइए फिर से मान लें कि हम एक उपसमूह बनाते हैं जिसमें मूल डेटाफ़्रेम की केवल पहली चार पंक्तियाँ होती हैं, लेकिन इस बार हम मूल डेटाफ़्रेम की एक प्रति बनाने के लिए .copy() का उपयोग करते हैं:

 #define subsetted DataFrame
df_subset = df[0:4]. copy ()

अब मान लीजिए कि हम डेटाफ़्रेम सबसेट के टीम कॉलम का पहला मान बदलते हैं:

 #change first value in team column
df_subset. team [0] = ' X '

#view subsetted DataFrame
print (df_subset)

  team points assists
0X18 5
1 B 22 7
2 C 19 7
3 D 14 9

#view original DataFrame
print (df)

  team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

ध्यान दें कि टीम कॉलम का पहला मान केवल डेटाफ़्रेम सबसेट में “ए” से “एक्स” में बदला गया था।

मूल डेटाफ़्रेम बरकरार रहता है क्योंकि उपसमुच्चय बनाते समय हमने इसकी प्रतिलिपि बनाने के लिए .copy() का उपयोग किया था।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य ऑपरेशन कैसे करें:

स्थिति के आधार पर पांडा डेटाफ़्रेम में पंक्तियों को कैसे हटाएं
पांडा डेटाफ़्रेम को अनेक स्थितियों पर कैसे फ़िल्टर करें
पांडास डेटाफ़्रेम में “नॉट इन” फ़िल्टर का उपयोग कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *