मैंने पिछले कई प्रश्नों की खोज की है लेकिन मेरी समस्या का उत्तर नहीं मिला!

मैं दो सूचियों को पारित करके डेटा फ्रेम के कॉलम नामों को प्रतिस्थापित करने का प्रयास कर रहा हूं। पहली सूची (वर्तमान कॉलम नाम) to_replace तर्क के रूप में और दूसरी सूची मान (नए कॉलम नाम) के रूप में। df.replace दस्तावेज़ के अनुसार, कोई सूचियाँ पास कर सकता है:

  • स्ट्र, रेगेक्स या न्यूमेरिक की सूची:

    - First, if `to_replace` and `value` are both lists, they
      **must** be the same length.
    - Second, if ``regex=True`` then all of the strings in **both**
      lists will be interpreted as regexs otherwise they will match
      directly. This doesn't matter much for `value` since there
      are only a few possible substitution regexes you can use.
    - str, regex and numeric rules apply as above.
    

मेरा कोड है:

CurrentColNames=list(df.columns)

NewColNames=['Hello','Hi', ...'Bye'] #Just an example. Lists are of same size and type. 

df.rename(columns={c: c.replace(CurrentColNames,NewColNames) for c in df.columns},inplace=True)

मुझे त्रुटि हो रही है:

लेखन त्रुटि: बदलें () तर्क 1 str होना चाहिए, सूची नहीं

लेकिन प्रलेखन ने कहा, कोई सूचियां पास कर सकता है! क्या मैं कुछ भूल रहा हूँ? कोई सहायता चाहिए?!

0
Moh 7 पद 2018, 03:14

1 उत्तर

सबसे बढ़िया उत्तर

.replace का उपयोग डेटाफ़्रेम के मानों को बदलने के लिए किया जाता है, जो डेटाफ़्रेम के कॉलम नामों से भिन्न होते हैं। @sacul सही है - आप जो करना चाहते हैं उसे करने का सबसे आसान तरीका .columns विशेषता को एक नई सूची से बदलना है:

df.columns = NewColNames

यदि आपके पास एक शब्दकोश है जो वर्तमान नामों को नए नामों से मैप करता है (चलिए इसे current_to_new कहते हैं, तो आप .rename का भी उपयोग कर सकते हैं:

df = df.rename(columns=current_to_new)
0
Battery_Al 7 पद 2018, 03:25