मान लें कि मेरे पास एकाधिक डेटाफ़्रेम हैं और प्रत्येक में समान कॉलम नाम हैं, हालांकि उन स्तंभों की सामग्री आवश्यक रूप से समान नहीं है।
मैंने प्रत्येक डेटाफ्रेम के कॉलम पर लूप करने की कोशिश की और कॉलम को नाम से हटा दिया लेकिन यह काम नहीं किया। अगर मैं व्यक्तिगत रूप से प्रत्येक डेटाफ्रेम पर एक ही विधि का प्रयास करता हूं तो यह काम करता है
मेरे पास निम्नलिखित डेटाफ्रेम हैं:
import pandas as pd
df1 = pd.DataFrame({'user': ['John', 'Joe', 'Alice'],
'income': [40000, 50000, 42000],
'Unnamed: 0': [1, 2, 3]})
df2 = pd.DataFrame({'user': ['Luke', 'Paul', 'Jane'],
'income': [40000, 50000, 42000],
'Unnamed: 0': [1, 2, 3]})
df3 = pd.DataFrame({'user': ['Sue', 'Haley', 'Erica'],
'income': [40000, 50000, 42000],
'Unnamed: 0': [1, 2, 3]})
मैंने यह कोशिश की, सफलता के बिना:
dataframes = [df1, df2, df3]
for df in dataframes:
for column in df.columns:
if "Unnamed" in column:
df = df.drop(column, axis = 1)
इसने dataframes
में कोई भी आइटम नहीं बदला।
हालांकि, अगर मैं कहूं:
df3 = df3.drop("Unnamed: 0", axis = 1)
यह लौटता है:
pd.DataFrame({'user': ['Sue', 'Haley', 'Erica'],
'income': [40000, 50000, 42000]})
ध्यान दें, यह केवल df3 ही नहीं, df1 और df2 के लिए भी काम करता है।
क्या कोई सूची में सभी डेटाफ्रेम से अवांछित कॉलम को प्रत्येक के लिए एक पंक्ति लिखे बिना छोड़ने में मदद कर सकता है?
1 उत्तर
ये कोशिश करें:
for df in dataframes:
for column in df.columns:
if "Unnamed" in column:
df.drop(column, axis = 1, inplace=True)
समस्या यह है कि आप नए डेटाफ़्रेम बना रहे थे, और उन्हें df
को असाइन कर रहे थे जिसे तुरंत हटा दिया गया था
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
for df in dataframes: df.drop(df.columns[df.columns.str.contains('Unnamed:')], 1, inplace=True)
inplace=True
प्रत्येक संबंधित आइटम के स्थान परdataframes
परोक्ष रूप सेdf
लौटा रहा है