为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

牛魔王的故事 2023-09-19 17:05:42
我有这样的数据框:A   B   C   D   E   F1   2   3   4   5   67   8   9   10  11  1213  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   new1   2   3   4   5   6   4,5,67   8   9   10  11  12  10,11,1213  14  15  16  17  18  16,17,18但我想要新的列作为列表。像下面这样:A   B   C   D   E   F   new1   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]我应该怎么办?
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

让我们尝试一下


df['New'] = df.iloc[:,3:].agg(list,1)

df

    A   B   C   D   E   F           New

0   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]


查看完整回答
反对 回复 2023-09-19
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

选择所需的列,转换为二维列表,然后将它们全部推入 1 个系列。


df["new"] = df.loc[:, "D":"F"].to_numpy().tolist()


print(df)

    A   B   C   D   E   F           new

0   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]


查看完整回答
反对 回复 2023-09-19
  • 2 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信