将多个列值合并为一列,作为 python pandas 中的列表

我有这样的数据框:


A   B   C   D   E   F

1   2   3   4   5   6

7   8   9   10  11  12

13  14  15  16  17  18

我通过以下方式合并列来创建新列C:


df['new'] = df[df.columns[3:]].apply(lambda x: ','.join(x.dropna().astype(str)), axis=1)

所以,现在的结果是:


A   B   C   D   E   F   new

1   2   3   4   5   6   4,5,6

7   8   9   10  11  12  10,11,12

13  14  15  16  17  18  16,17,18

但我想要新的列作为列表。像下面这样:


A   B   C   D   E   F   new

1   2   3   4   5   6   [4,5,6]

7   8   9   10  11  12  [10,11,12]

13  14  15  16  17  18  [16,17,18]

我应该怎么办?


牛魔王的故事
浏览 166回答 2
2回答

繁星点点滴滴

让我们尝试一下df['New'] = df.iloc[:,3:].agg(list,1)df    A   B   C   D   E   F           New0   1   2   3   4   5   6     [4, 5, 6]1   7   8   9  10  11  12  [10, 11, 12]2  13  14  15  16  17  18  [16, 17, 18]

慕标琳琳

选择所需的列,转换为二维列表,然后将它们全部推入 1 个系列。df["new"] = df.loc[:, "D":"F"].to_numpy().tolist()print(df)    A   B   C   D   E   F           new0   1   2   3   4   5   6     [4, 5, 6]1   7   8   9  10  11  12  [10, 11, 12]2  13  14  15  16  17  18  [16, 17, 18]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python