我是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



我想在每个熊猫的开头添加一列,因此输出应如下所示:

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

关于python - 将连续的行号作为第一列添加到多个 Pandas ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55858555/

10-12 20:10