gpt4 book ai didi

python Pandas : Create New Columns For Each Instance of A Particular Column Value

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:35 24 4
gpt4 key购买 nike

我有这样一个数据框

----------------
RecID| A |B
----------------
1 |Dog | x
2 |Dog | y
3 |Dog | z
4 |Cat | a
5 |Cat | b

想知道有没有办法把它改造成这样:

-----------------------------
RecID| A |B_1|B_2|B_3|
-----------------------------
1 |Dog| x | y | z |
2 |Cat| a | b | NA|

基本上为 B 的每个可能值创建新列,这些值按 A 的特定值分组,并在需要时用 NA 填充。

最佳答案

一种方式是

In [294]: (df.groupby('A', sort=False).B.apply(list)
.apply(pd.Series).add_prefix('B_').reset_index())
Out[294]:
A B_0 B_1 B_2
0 Dog x y z
1 Cat a b NaN

或者,

In [320]: (df.groupby('A', sort=False).B.apply(lambda x: pd.Series(x.values))
.unstack().rename(columns=lambda x: 'B_{}'.format(int(x)+1))
.reset_index())
Out[320]:
A B_1 B_2 B_3
0 Dog x y z
1 Cat a b None

关于 python Pandas : Create New Columns For Each Instance of A Particular Column Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45967900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com