更改列的顺序以创建适用于条形图的数据框架



我有这个数据帧(第一行有两个,实际的一个很大(

df
p__Actinobacteriota 25 555
p__Bacteroidota 31 752

我想把这个数据帧转换成下一个:

dft
p__Actinobacteriota 25 A
p__Actinobacteriota 555 B
p__Bacteroidota 31 A
p__Bacteroidota 725 B

最简单的方法是什么?

我假设您的数据帧是:

pd.DataFrame([['p__Actinobacteriota', 25, 555], ['p__Bacteroidota', 31, 752]])

打印为:

0   1    2
0  p__Actinobacteriota  25  555
1      p__Bacteroidota  31  752

stack很容易:

df.rename(columns={1:'A', 2:'B'}).set_index([0]).stack().rename('val').reset_index()

其给出:

0 level_1  val
0  p__Actinobacteriota       A   25
1  p__Actinobacteriota       B  555
2      p__Bacteroidota       A   31
3      p__Bacteroidota       B  752

最新更新