@@ -30,23 +30,46 @@ def setUp(self):
30
30
self .df1 .columns = [list ('ABC' ), list ('abc' )]
31
31
self .df1 .columns .names = ['CAP' , 'low' ]
32
32
33
- def test_default_col_names (self ):
33
+ def test_top_level_method (self ):
34
34
result = melt (self .df )
35
35
self .assertEqual (result .columns .tolist (), ['variable' , 'value' ])
36
36
37
- result1 = melt (self .df , id_vars = ['id1' ])
37
+ def test_method_signatures (self ):
38
+ tm .assert_frame_equal (self .df .melt (),
39
+ melt (self .df ))
40
+
41
+ tm .assert_frame_equal (self .df .melt (id_vars = ['id1' , 'id2' ],
42
+ value_vars = ['A' , 'B' ]),
43
+ melt (self .df ,
44
+ id_vars = ['id1' , 'id2' ],
45
+ value_vars = ['A' , 'B' ]))
46
+
47
+ tm .assert_frame_equal (self .df .melt (var_name = self .var_name ,
48
+ value_name = self .value_name ),
49
+ melt (self .df ,
50
+ var_name = self .var_name ,
51
+ value_name = self .value_name ))
52
+
53
+ tm .assert_frame_equal (self .df1 .melt (col_level = 0 ),
54
+ melt (self .df1 , col_level = 0 ))
55
+
56
+ def test_default_col_names (self ):
57
+ result = self .df .melt ()
58
+ self .assertEqual (result .columns .tolist (), ['variable' , 'value' ])
59
+
60
+ result1 = self .df .melt (id_vars = ['id1' ])
38
61
self .assertEqual (result1 .columns .tolist (), ['id1' , 'variable' , 'value'
39
62
])
40
63
41
- result2 = melt ( self .df , id_vars = ['id1' , 'id2' ])
64
+ result2 = self .df . melt ( id_vars = ['id1' , 'id2' ])
42
65
self .assertEqual (result2 .columns .tolist (), ['id1' , 'id2' , 'variable' ,
43
66
'value' ])
44
67
45
68
def test_value_vars (self ):
46
- result3 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' )
69
+ result3 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = 'A' )
47
70
self .assertEqual (len (result3 ), 10 )
48
71
49
- result4 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ])
72
+ result4 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ])
50
73
expected4 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
51
74
'id2' : self .df ['id2' ].tolist () * 2 ,
52
75
'variable' : ['A' ] * 10 + ['B' ] * 10 ,
@@ -65,8 +88,8 @@ def test_value_vars_types(self):
65
88
columns = ['id1' , 'id2' , 'variable' , 'value' ])
66
89
67
90
for type_ in (tuple , list , np .array ):
68
- result = melt ( self .df , id_vars = ['id1' , 'id2' ],
69
- value_vars = type_ (('A' , 'B' )))
91
+ result = self .df . melt ( id_vars = ['id1' , 'id2' ],
92
+ value_vars = type_ (('A' , 'B' )))
70
93
tm .assert_frame_equal (result , expected )
71
94
72
95
def test_vars_work_with_multiindex (self ):
@@ -77,7 +100,7 @@ def test_vars_work_with_multiindex(self):
77
100
'value' : self .df1 [('B' , 'b' )],
78
101
}, columns = [('A' , 'a' ), 'CAP' , 'low' , 'value' ])
79
102
80
- result = melt ( self .df1 , id_vars = [('A' , 'a' )], value_vars = [('B' , 'b' )])
103
+ result = self .df1 . melt ( id_vars = [('A' , 'a' )], value_vars = [('B' , 'b' )])
81
104
tm .assert_frame_equal (result , expected )
82
105
83
106
def test_tuple_vars_fail_with_multiindex (self ):
@@ -92,26 +115,26 @@ def test_tuple_vars_fail_with_multiindex(self):
92
115
for id_vars , value_vars in ((tuple_a , list_b ), (list_a , tuple_b ),
93
116
(tuple_a , tuple_b )):
94
117
with tm .assertRaisesRegexp (ValueError , r'MultiIndex' ):
95
- melt ( self .df1 , id_vars = id_vars , value_vars = value_vars )
118
+ self .df1 . melt ( id_vars = id_vars , value_vars = value_vars )
96
119
97
120
def test_custom_var_name (self ):
98
- result5 = melt ( self .df , var_name = self .var_name )
121
+ result5 = self .df . melt ( var_name = self .var_name )
99
122
self .assertEqual (result5 .columns .tolist (), ['var' , 'value' ])
100
123
101
- result6 = melt ( self .df , id_vars = ['id1' ], var_name = self .var_name )
124
+ result6 = self .df . melt ( id_vars = ['id1' ], var_name = self .var_name )
102
125
self .assertEqual (result6 .columns .tolist (), ['id1' , 'var' , 'value' ])
103
126
104
- result7 = melt ( self .df , id_vars = ['id1' , 'id2' ], var_name = self .var_name )
127
+ result7 = self .df . melt ( id_vars = ['id1' , 'id2' ], var_name = self .var_name )
105
128
self .assertEqual (result7 .columns .tolist (), ['id1' , 'id2' , 'var' ,
106
129
'value' ])
107
130
108
- result8 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
109
- var_name = self .var_name )
131
+ result8 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
132
+ var_name = self .var_name )
110
133
self .assertEqual (result8 .columns .tolist (), ['id1' , 'id2' , 'var' ,
111
134
'value' ])
112
135
113
- result9 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
114
- var_name = self .var_name )
136
+ result9 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
137
+ var_name = self .var_name )
115
138
expected9 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
116
139
'id2' : self .df ['id2' ].tolist () * 2 ,
117
140
self .var_name : ['A' ] * 10 + ['B' ] * 10 ,
@@ -121,24 +144,24 @@ def test_custom_var_name(self):
121
144
tm .assert_frame_equal (result9 , expected9 )
122
145
123
146
def test_custom_value_name (self ):
124
- result10 = melt ( self .df , value_name = self .value_name )
147
+ result10 = self .df . melt ( value_name = self .value_name )
125
148
self .assertEqual (result10 .columns .tolist (), ['variable' , 'val' ])
126
149
127
- result11 = melt ( self .df , id_vars = ['id1' ], value_name = self .value_name )
150
+ result11 = self .df . melt ( id_vars = ['id1' ], value_name = self .value_name )
128
151
self .assertEqual (result11 .columns .tolist (), ['id1' , 'variable' , 'val' ])
129
152
130
- result12 = melt ( self .df , id_vars = ['id1' , 'id2' ],
131
- value_name = self .value_name )
153
+ result12 = self .df . melt ( id_vars = ['id1' , 'id2' ],
154
+ value_name = self .value_name )
132
155
self .assertEqual (result12 .columns .tolist (), ['id1' , 'id2' , 'variable' ,
133
156
'val' ])
134
157
135
- result13 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
136
- value_name = self .value_name )
158
+ result13 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
159
+ value_name = self .value_name )
137
160
self .assertEqual (result13 .columns .tolist (), ['id1' , 'id2' , 'variable' ,
138
161
'val' ])
139
162
140
- result14 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
141
- value_name = self .value_name )
163
+ result14 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
164
+ value_name = self .value_name )
142
165
expected14 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
143
166
'id2' : self .df ['id2' ].tolist () * 2 ,
144
167
'variable' : ['A' ] * 10 + ['B' ] * 10 ,
@@ -150,26 +173,29 @@ def test_custom_value_name(self):
150
173
151
174
def test_custom_var_and_value_name (self ):
152
175
153
- result15 = melt ( self .df , var_name = self .var_name ,
154
- value_name = self .value_name )
176
+ result15 = self .df . melt ( var_name = self .var_name ,
177
+ value_name = self .value_name )
155
178
self .assertEqual (result15 .columns .tolist (), ['var' , 'val' ])
156
179
157
- result16 = melt ( self .df , id_vars = ['id1' ], var_name = self .var_name ,
158
- value_name = self .value_name )
180
+ result16 = self .df . melt ( id_vars = ['id1' ], var_name = self .var_name ,
181
+ value_name = self .value_name )
159
182
self .assertEqual (result16 .columns .tolist (), ['id1' , 'var' , 'val' ])
160
183
161
- result17 = melt (self .df , id_vars = ['id1' , 'id2' ],
162
- var_name = self .var_name , value_name = self .value_name )
184
+ result17 = self .df .melt (id_vars = ['id1' , 'id2' ],
185
+ var_name = self .var_name ,
186
+ value_name = self .value_name )
163
187
self .assertEqual (result17 .columns .tolist (), ['id1' , 'id2' , 'var' , 'val'
164
188
])
165
189
166
- result18 = melt (self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
167
- var_name = self .var_name , value_name = self .value_name )
190
+ result18 = self .df .melt (id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
191
+ var_name = self .var_name ,
192
+ value_name = self .value_name )
168
193
self .assertEqual (result18 .columns .tolist (), ['id1' , 'id2' , 'var' , 'val'
169
194
])
170
195
171
- result19 = melt (self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
172
- var_name = self .var_name , value_name = self .value_name )
196
+ result19 = self .df .melt (id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
197
+ var_name = self .var_name ,
198
+ value_name = self .value_name )
173
199
expected19 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
174
200
'id2' : self .df ['id2' ].tolist () * 2 ,
175
201
self .var_name : ['A' ] * 10 + ['B' ] * 10 ,
@@ -181,17 +207,17 @@ def test_custom_var_and_value_name(self):
181
207
182
208
df20 = self .df .copy ()
183
209
df20 .columns .name = 'foo'
184
- result20 = melt (df20 )
210
+ result20 = df20 . melt ()
185
211
self .assertEqual (result20 .columns .tolist (), ['foo' , 'value' ])
186
212
187
213
def test_col_level (self ):
188
- res1 = melt ( self .df1 , col_level = 0 )
189
- res2 = melt ( self .df1 , col_level = 'CAP' )
214
+ res1 = self .df1 . melt ( col_level = 0 )
215
+ res2 = self .df1 . melt ( col_level = 'CAP' )
190
216
self .assertEqual (res1 .columns .tolist (), ['CAP' , 'value' ])
191
217
self .assertEqual (res2 .columns .tolist (), ['CAP' , 'value' ])
192
218
193
219
def test_multiindex (self ):
194
- res = pd . melt ( self .df1 )
220
+ res = self .df1 . melt ( )
195
221
self .assertEqual (res .columns .tolist (), ['CAP' , 'low' , 'value' ])
196
222
197
223
0 commit comments