gpt4 book ai didi

python - 基于独特值(value)观的转变

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

我有一个像这样的数据框:

Allotment  NDWI   DEM    TWI    Land_Cover
Annex 10 1.2 4 PHP
Annex 10 1.2 4 PHP
Annex 10 1.2 4 WMTGP
Annex 10 1.2 4 SP
Berg 5 1.7 5 BNW
Berg 5 1.7 5 BNW
Berg 5 1.7 5 SP
Berg 5 1.7 5 WMTGP

我想对其进行透视,以便特定分配的行中的所有唯一值都成为它们自己的列。

我想要的输出是:

Allotment  NDWI    DEM  TWI  Land_Cover1   Land_Cover2   Land_Cover3
Annex 10 1.2 4 PHP WMTGP SP
Berg 5 1.7 5 BNW SP WMTGP

有没有办法将 .unique() 合并到数据透视表或 reshape 中?

最佳答案

您可以通过 .groupby().apply() 使用 .unique():

land_cover = df.groupby('Allotment')['Land_Cover'].apply(lambda x: pd.DataFrame(x.unique()).T).reset_index(level=1, drop=True)
land_cover.columns = ['Land_Cover{}'.format(c) for c in land_cover.columns]

获取:

          Land_Cover0 Land_Cover1 Land_Cover2
Allotment
Annex PHP WMTGP SP
Berg BNW SP WMTGP

您可以将其与原始DataFrame的重复数据删除版本合并:

pd.concat([df.set_index('Allotment').loc[:, ['NDWI', 'DEM', 'TWI']].drop_duplicates(), land_cover], axis=1)

NDWI DEM TWI Land_Cover0 Land_Cover1 Land_Cover2
Allotment
Annex 10 1.2 4 PHP WMTGP SP
Berg 5 1.7 5 BNW SP WMTGP

关于python - 基于独特值(value)观的转变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34935172/

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