gpt4 book ai didi

python - Pandas 的多列分解

转载 作者:太空狗 更新时间:2023-10-29 18:26:39 31 4
gpt4 key购买 nike

pandas factorize 函数将系列中的每个唯一值分配给一个从 0 开始的顺序索引,并计算每个系列条目属于哪个索引。

我想在多个列上完成与 pandas.factorize 等效的操作:

import pandas as pd
df = pd.DataFrame({'x': [1, 1, 2, 2, 1, 1], 'y':[1, 2, 2, 2, 2, 1]})
pd.factorize(df)[0] # would like [0, 1, 2, 2, 1, 0]

也就是说,我想确定一个数据帧的几列中每个唯一的值元组,为每个值分配一个顺序索引,并计算数据帧中的每一行属于哪个索引。

Factorize 仅适用于单列。 pandas中是否有多列等价函数?

最佳答案

您需要先创建一个元组的 ndarray,pandas.lib.fast_zip 可以在 cython 循环中非常快速地执行此操作。

import pandas as pd
df = pd.DataFrame({'x': [1, 1, 2, 2, 1, 1], 'y':[1, 2, 2, 2, 2, 1]})
print pd.factorize(pd.lib.fast_zip([df.x, df.y]))[0]

输出是:

[0 1 2 2 1 0]

关于python - Pandas 的多列分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16453465/

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