Skip to main content
 首页 » 编程设计

python之将顺序行号作为第一列添加到多个 Pandas

2025年05月04日21lhb25

我是 Pandas 的新手,我想向不同的数据帧添加序列号或行号,例如,如果我有以下数据帧

df1  
col1 col2 col3 
123  aaaa   bbbb 
345 eeee   cccc 
 
df2 
 
col1 col2 col3 
1234  aaa   bbb 
3456  eee   ccc  
 
df3 
 
col1  col2 col3 
12345  aa   ggb 
34567  ee   jkc  
 

我想在每个 pandas 的开头添加一列,这样输出应该如下所示:

df1  
col0 col1 col2 col3 
1     123  aaaa   bbbb 
2     345 eeee   cccc 
 
df2 
 
col0  col1 col2 col3 
3      1234  aaa   bbb 
4      3456  eee   ccc  
 
df3 
 
col0  col1  col2 col3 
5     12345  aa   ggb 
6     34567  ee   jkc  

我设法使用 AWK 命令做到了这一点,但是在将数据帧转换为 csv 之后,如何仅使用 Pandas 完成它?

请您参考如下方法:

我正在使用concat,并尽力保留所有子dfs的所有原始信息(即使是原始index)

df = pd.concat([df1, df2, df3], keys = [1,2,3]) 
df.insert(loc = 0, column = 'col0', value = np.arange(len(df))+1 ) 
df1,df2,df3 = [x.reset_index(level = 0,drop = True) for _, x in df.groupby(level = 0)] 
df1 
Out[524]:  
   col0  col1  col2  col3 
0     1   123  aaaa  bbbb 
1     2   345  eeee  cccc 
df2 
Out[525]:  
   col0  col1 col2 col3 
0     3  1234  aaa  bbb 
1     4  3456  eee  ccc 
df3 
Out[526]:  
   col0   col1 col2 col3 
0     5  12345   aa  ggb 
1     6  34567   ee  jkc