I have a Python Pandas dataframe df: d = [['hello', 1, 'GOOD', 'long.kw'], [1.2, 'chipotle', np.nan, 'bingo'], ['various', np.nan, 3000, 123.456]] t = pd.DataFrame(data=d, columns=['A','B','C','D']) which looks like this: print(t) A B C D 0 hello 1 GOOD long.kw 1 1.2 chipotle NaN bingo 2 various NaN 3000 123.456 I am trying to create a new column which is a list of the values in A, B, C, and D. So it would look like this: t['combined'] Out[125]: 0 [hello, 1, GOOD, long.kw] 1 [1.2, chipotle, nan, bingo] 2 [various, nan, 3000, 123.456] Name: combined, dtype: object I am trying this code: t['combined'] = t.apply(lambda x: list([x['A'], x['B'], x['C'], x['D']]),axis=1) Which returns this error: ValueError: Wrong number of items passed 4, placement implies 1 What is puzzling to me is if I remove one of the columns that I want to put in the list (or add another column to the dataframe that I DON'T add to the list), my code works. For instance, run this code: t['combined'] = t.apply(lambda x: list([x['A'], x['B'], x['D']]),axis=1) Returns this which is perfect if I only wanted the 3 columns: print(t) A B C D combined 0 hello 1 GOOD long.kw [hello, 1, long.kw] 1 1.2 chipotle NaN bingo [1.2, chipotle, bingo] 2 various NaN 3000 123.456 [various, nan, 123.456] I am at a complete loss as to why requesting the 'combined' list be made of all columns in the dataframe would create an error, but selecting all but 1 column to create the 'combined' list works as expected. Continue reading...