gpt4 book ai didi

pandas - 如何分解具有相同值的多个数据框列?

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

我有一些足球数据,其中包含两个球队名称和一些数字数据:

ar = [
["browns", "patriots", 2, 5],
["patriots", "bills", 4, 15],
["browns", "bills", 1, 10],
["eagles", "browns", 3, 11]
]

frame = pandas.DataFrame(ar, columns=['Team1', 'Team2', 'Down', 'ToGo'])

我想将团队名称转换为枚举类型,我可以对第一个团队名称执行此操作,例如:

frame['Team1'], uniques = frame['Team1'].factorize()

如何同时对两个团队名称执行此操作,以便具有一致的唯一性并且不存在缺失值?请注意,'bills' 不在 Team1 列中,因此我不能仅应用映射(尽管我也不知道如何执行此操作)。

编辑:生成的团队名称应如下所示:

   Team1  Team2
0 0 1
1 1 3
2 0 3
3 2 0

因此,“browns”始终标记为“0”,在第 0 行中标记为 Team1,在第 3 行中标记为 Team2。

最佳答案

import numpy as np

# get the unique values from the two columns
unique = np.unique(df[['Team1', 'Team2']])
# get the factors
factors = np.arange(len(unique))
# map the values to the corresponding factor
df[['Team1', 'Team2']] = df[['Team1', 'Team2']].replace(unique, factors)

>>> df

Team1 Team2 Down ToGo
0 1 3 2 5
1 3 0 4 15
2 1 0 1 10
3 2 1 3 11

关于pandas - 如何分解具有相同值的多个数据框列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69856888/

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