在python中将多个列值作为列表合并到一列中
我有这样的数据框架:在python中将多个列值作为列表合并到一列中,python,pandas,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 ne
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]
我该怎么办?让我们试一试
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]
让我们试试
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]
选择所需的列,转换为二维列表,然后将它们全部推入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]
选择所需的列,转换为二维列表,然后将它们全部推入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]
有趣的方法。您能解释一下agg(列表,1)正在做什么吗?agg行值到一个列表~axis=1表示检查行~有趣的方法。你能解释一下agg(列表,1)在做什么吗?agg行值到一个列表~axis=1意味着检查行~老实说,我不知道列的确切名称和计数,因此我只能使用@BEN_YO answer。无论如何,谢谢。老实说,我不知道栏目的确切名称和数量,因此我只能使用@BEN_-YO-answer。无论如何,谢谢。