gpt4 book ai didi

Python 堆叠为非堆叠格式

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:57 25 4
gpt4 key购买 nike

或也称为长到宽格式。

我有以下内容:

ID1    ID2   POS1    POS2    TYPE     TYPEVAL
--- --- ---- ---- ---- -------
A 001 1 5 COLOR RED
A 001 1 5 WEIGHT 50KG
A 001 1 5 HEIGHT 160CM
A 002 6 19 FUTURE YES
A 002 6 19 PRESENT NO
B 001 26 34 COLOUR BLUE
B 001 26 34 WEIGHT 85KG
B 001 26 34 HEIGHT 120CM
C 001 10 13 MOBILE NOKIA
C 001 10 13 TABLET ASUS

我想将 TYPE 列转换为每个唯一值的新列,即

ID1    ID2    POS1    POS2    COLOR    WEIGHT    HEIGHT    FUTURE    PRESENT    MOBILE    TABLET
A 001 1 5 RED 50KG 160CM NA NA NA NA
A 002 6 19 NA NA NA YES NO NA NA
B 001 26 34 BLUE 85KG 120CM NA NA NA NA
C 001 10 13 NA NA NA NA NA NOKIA ASUS

我已经尝试通过以下方式做到这一点:

PD.pivot_table(df,index=["ID1","ID2"],columns=["BEGIN","END","TYPE"],values=["TYPEVAL"])

但是我得到:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pandas/tools/pivot.py", line 127, in pivot_table
agged = grouped.agg(aggfunc)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 3690, in aggregate
return super(DataFrameGroupBy, self).aggregate(arg, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 3179, in aggregate
result, how = self._aggregate(arg, _level=_level, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/base.py", line 432, in _aggregate
return getattr(self, arg)(*args, **kwargs), None
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 1009, in mean
return self._cython_agg_general('mean')
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 3113, in _cython_agg_general
how, numeric_only=numeric_only)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 3159, in _cython_agg_blocks
raise DataError('No numeric types to aggregate')

我被提示通过一些数字函数(即平均值或总和)聚合列。但是我不想做这样的事情,我只想转置 TYPE 列而不进行任何聚合。

如有任何建议,我们将不胜感激!

最佳答案

您可以使用除 'TYPEVAL' 列之外的所有列设置索引,然后 unstack

df.set_index(
df.columns.difference(['TYPEVAL']).tolist()
).TYPEVAL.unstack('TYPE').reset_index().rename_axis(None, axis=1)

enter image description here

关于Python 堆叠为非堆叠格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42838855/

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