【pandas教程】根据某列的取值将某列变为多个字段

在数据处理中,有可能遇到需要将某一列的取值变成新的字段,比如有一个表格:

id A B
id1 a 3.2
id1 b 4.1
id2 a 2.2
id2 b 3
现在需要将表格变为如下:

id A_a A_b
id1 3.2 4.1
id2 2.2 3
可以看到A的取值a, b变成了新的字段A_a, A_b。

1. 当只有一个索引时,可以使用pivot方法实现上述操作:
>>> df = pd.DataFrame({“id”: [“id1”, “id1”, “id2”, “id2”], “A”:[“a”, “b”, “a”, “b”], “B”:[3.2, 4.1, 2.2, 3]})
>>> df
id  A    B
0  id1  a  3.2
1  id1  b  4.1
2  id2  a  2.2
3  id2  b  3.0
>>> df_new = df.pivot(index=”id”, columns=”A”, values=”B”).reset_index()
>>> df_new
A   id    a    b
0  id1  3.2  4.1
1  id2  2.2  3.0
# 重命名字段
>>> df_new.columns = [“id”, “A_a”, “A_b”]
>>> df_new
id  A_a  A_b
0  id1  3.2  4.1
1  id2  2.2  3.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2. 当有多个索引时,使用pandas.pivot_table实现(建议使用这个方法)
df = pd.pivot_table(df, values=’B’, index=[‘id’], columns=[‘A’]).reset_index()
————————————————
版权声明:本文为CSDN博主「陈华杰」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cetrol_chen/article/details/91129806

发表评论

邮箱地址不会被公开。 必填项已用*标注