我有这样的数据框: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]
慕标琳琳
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]
添加回答
举报
0/150
提交
取消