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