कॉलम जोड़ें (2)
Pandas DataFrame की हर observation पर iterate करने के लिए iterrows() इस्तेमाल करना समझने में आसान है, लेकिन बहुत प्रभावी नहीं होता। हर iteration पर आप एक नया Pandas Series बना रहे होते हैं.
अगर आप किसी दूसरे कॉलम पर कोई फ़ंक्शन कॉल करके DataFrame में नया कॉलम जोड़ना चाहते हैं, तो for लूप के साथ iterrows() सही तरीका नहीं है। इसकी बजाय, आपको apply() इस्तेमाल करना चाहिए.
brics DataFrame में वही नतीजा पाने के लिए iterrows() वाले वर्ज़न की तुलना apply() वाले वर्ज़न से करें:
for lab, row in brics.iterrows() :
brics.loc[lab, "name_length"] = len(row["country"])
brics["name_length"] = brics["country"].apply(len)
हम country कॉलम के हर नाम पर upper() मेथड कॉल करने के लिए भी ऐसा ही कर सकते हैं। हालाँकि, upper() एक method है, इसलिए हमें थोड़ा अलग तरीका अपनाना होगा:
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट Python
अभ्यास निर्देश
forलूप को एक one-liner से बदलें जो.apply(str.upper)इस्तेमाल करता हो। कॉल से वही परिणाम मिलना चाहिए:carsमेंCOUNTRYनाम का कॉलम जुड़ना चाहिए, जिसमें country नाम uppercase में हों।- हमेशा की तरह, अपना मेहनताना देखने के लिए
carsको प्रिंट करें
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)
# Use .apply(str.upper)
for lab, row in cars.iterrows() :
cars.loc[lab, "COUNTRY"] = row["country"].upper()