gpt4 book ai didi

python - 使用多列透视 Pandas 数据框

转载 作者:行者123 更新时间:2023-12-01 01:49:55 25 4
gpt4 key购买 nike

这是 Pivot a dataframe with two columns as the index 的后续问题.

我的数据采用以下格式:

Record ID Para  Col2     Col3
1 A x a
1 A x b
2 B y a
2 B y b
1 A z c
1 C x a

我想将其 reshape 为:

Record Para  a     b      c    x   y  z 
1 A 1 1 1 1 0 1
1 C 1 1 1 1 0 1
2 B 1 1 0 0 1 0

我试过了

    csv3 = csv2.pivot_table(index=['Record ID', 'Para'], columns=csv2.iloc[:,2:], aggfunc='size', fill_value=0).reset_index()

但列不正确。我需要做哪些不同的事情?

更新1:

我有 10 列。

最佳答案

IIUC get_dummies

pd.get_dummies(df.set_index(['RecordID','Para']),prefix='',prefix_sep = '').sum(level=[0,1]).gt(0).astype(int)
Out[272]:
x y z a b c
RecordID Para
1 A 1 0 1 1 1 1
2 B 0 1 0 1 1 0

更新

pd.get_dummies(df.set_index(['RecordID','Para']),prefix='',prefix_sep = '').sum(level=[0,1]).gt(0).astype(int).replace(0,np.nan).groupby(level=0).ffill().fillna(0)
Out[292]:
x y z a b c
RecordID Para
1 A 1.0 0.0 1.0 1 1.0 1.0
2 B 0.0 1.0 0.0 1 1.0 0.0
1 C 1.0 0.0 1.0 1 1.0 1.0

关于python - 使用多列透视 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50827506/

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