Skip to main content
 首页 » 编程设计

python之在 for 循环中连接列

2025年05月04日12sharpest

我有以下数据集:

1   8   15  22 
2   9   16  23 
3   10  17  24 
4   11  18  25 
5   12  19  26 
6   13  20  27 
7   14  21  28 

我想得到如下结果:

1 
2 
3 
4 
5 
6 
7 
8 
... 
23 
24 
25 
26 
27 
28 

所以我想遍历数据集的所有列并将每一列连接到第一列。

import pandas as pd 
 
df = pd.read_csv("data.csv", delimiter=";", header=-1) 
 
number_of_columns= len(df.columns) 
print(number_of_columns) 
 
 
for i in range (1,number_of_columns): 
  df1 = df.iloc[:,i] 
  df2 = pd.concat([df,df1], ignore_index=True) 
 
 
print(df2) 

只有最后一列连接到最终数据框中。我知道 df2 在 for 循环的每次迭代中都会被覆盖。

那么如何在每个 for 循环之后“保存”df2,以便连接每一列?

非常感谢!

请您参考如下方法:

按列

堆栈+tolist

df.stack().tolist() 
 
[1, 
 8, 
 15, 
 22, 
 2, 
 9, 
 16, 
 23, 
 3, 
 10, 
 17, 
 24, 
 4, 
 11, 
 18, 
 25, 
 5, 
 12, 
 19, 
 26, 
 6, 
 13, 
 20, 
 27, 
 7, 
 14, 
 21, 
 28] 

按行

融化

df.melt().value.tolist() 
 
[1, 
 2, 
 3, 
 4, 
 5, 
 6, 
 7, 
 8, 
 9, 
 10, 
 11, 
 12, 
 13, 
 14, 
 15, 
 16, 
 17, 
 18, 
 19, 
 20, 
 21, 
 22, 
 23, 
 24, 
 25, 
 26, 
 27, 
 28] 

unstack+tolist

df.unstack().tolist() 
 
#outputs same as above