pandas 0.23 - DataFrame.melt()

pandas.DataFrame.melt




pandas

pandas.DataFrame.melt

DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None) [source]

"Unpivots" एक डेटाफ़्रेम को विस्तृत प्रारूप से लेकर लंबे प्रारूप तक, वैकल्पिक रूप से पहचानकर्ता चर सेट कर रहा है।

यह फ़ंक्शन डेटाफ़्रेम को एक ऐसे प्रारूप में मालिश करने के लिए उपयोगी है जहां एक या अधिक कॉलम पहचानकर्ता चर ( id_vars ) होते हैं, जबकि अन्य सभी कॉलम, जिन्हें मापा गया वेरिएबल ( value_vars ) माना जाता है, पंक्ति अक्ष के लिए "unpivoted" हैं, जिससे केवल दो गैर-पहचानकर्ता निकल जाते हैं कॉलम, 'वेरिएबल' और 'वैल्यू'।

संस्करण में नया 0.20.0।

पैरामीटर:
frame : DataFrame

id_vars : tuple, list, या ndarray, वैकल्पिक

पहचानकर्ता चर के रूप में उपयोग करने के लिए कॉलम (एस)।

value_vars : tuple, list, या ndarray, वैकल्पिक

स्तंभ (ओं) को अप्रकाशित करने के लिए। यदि निर्दिष्ट नहीं है, तो उन सभी स्तंभों का उपयोग करता है जो id_vars रूप में सेट नहीं हैं।

var_name : स्केलर

'चर' कॉलम के लिए उपयोग करने के लिए नाम। यदि कोई नहीं है तो इसका उपयोग frame.columns.nameframe.columns.name या 'चर' के रूप में किया जाता है।

value_name : स्केलर, डिफ़ॉल्ट 'मान'

'मान' कॉलम के लिए उपयोग करने के लिए नाम।

col_level : int या string, वैकल्पिक

यदि कॉलम एक मल्टीएंडेक्स हैं तो पिघलने के लिए इस स्तर का उपयोग करें।

यह भी देखें

melt , pivot_table , DataFrame.pivot

उदाहरण

>>> import pandas as pd
>>> df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'},
...                    'B': {0: 1, 1: 3, 2: 5},
...                    'C': {0: 2, 1: 4, 2: 6}})
>>> df
   A  B  C
0  a  1  2
1  b  3  4
2  c  5  6
>>> df.melt(id_vars=['A'], value_vars=['B'])
   A variable  value
0  a        B      1
1  b        B      3
2  c        B      5
>>> df.melt(id_vars=['A'], value_vars=['B', 'C'])
   A variable  value
0  a        B      1
1  b        B      3
2  c        B      5
3  a        C      2
4  b        C      4
5  c        C      6

'वैरिएबल' और 'वैल्यू' कॉलम के नाम कस्टमाइज किए जा सकते हैं:

>>> df.melt(id_vars=['A'], value_vars=['B'],
...         var_name='myVarname', value_name='myValname')
   A myVarname  myValname
0  a         B          1
1  b         B          3
2  c         B          5

यदि आपके पास मल्टी-इंडेक्स कॉलम हैं:

>>> df.columns = [list('ABC'), list('DEF')]
>>> df
   A  B  C
   D  E  F
0  a  1  2
1  b  3  4
2  c  5  6
>>> df.melt(col_level=0, id_vars=['A'], value_vars=['B'])
   A variable  value
0  a        B      1
1  b        B      3
2  c        B      5
>>> df.melt(id_vars=[('A', 'D')], value_vars=[('B', 'E')])
  (A, D) variable_0 variable_1  value
0      a          B          E      1
1      b          B          E      3
2      c          B          E      5