gpt4 book ai didi

python - 添加具有现有列名的新列

转载 作者:太空狗 更新时间:2023-10-30 02:02:49 25 4
gpt4 key购买 nike

我正在处理一个看起来像这样的数据框:

    FID           geometry                                       Code   w1  w2
0 12776 POLYGON ((-1.350000000000025 53.61540813717482... 12776 0 1
1 13892 POLYGON ((6.749999999999988 52.11964001623148,... 13892 1 0
2 14942 POLYGON ((-3.058896639907732e-14 51.3958198431... 14942 1 1
3 18964 POLYGON ((8.549999999999974 45.26941059233587,... 18964 0 1
4 19863 POLYGON ((-0.4500000000000305 44.6337746953077... 19863 0 1

我的目标是添加一个标记为“最大”的列,我将在其中写入哪个 w (w1, w2) 的频率更高。

到目前为止,我只设法添加了一个出现频率最高的列,而不是它出现的列的名称。

期望的输出应该是这样的:

    FID     geometry     Code   w1  w2   Max
0 12776 ... 12776 0 1 w2
1 13892 ... 13892 1 0 w1
2 14942 ... 14942 1 1 0
3 18964 ... 18964 0 1 w2
4 19863 ... 19863 0 1 w2

此外,如果可能的话,我想在频率相同时用零填充。

任何帮助将不胜感激! :-)

最佳答案

使用np.where当它们相等时选择0当它们不相等时选择idxmax(1)

df['max'] = np.where(df.w1 == df.w2, 0, df[['w1', 'w2']].idxmax(1))
df

FID geometry Code w1 w2 Max
0 12776 ... 12776 0 1 w2
1 13892 ... 13892 1 0 w1
2 14942 ... 14942 1 1 0
3 18964 ... 18964 0 1 w2
4 19863 ... 19863 0 1 w2

关于python - 添加具有现有列名的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38376533/

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