Chr*_*isB 12 python enumeration pandas data-cleaning
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]
Run Code Online (Sandbox Code Playgroud)
也就是说,我想确定数据帧的几列中每个唯一值的元组,为每个列分配一个顺序索引,并计算数据帧中每一行所属的索引.
Factorize仅适用于单列.pandas中有多列等效函数吗?
HYR*_*YRY 13
你需要先创建一个元组的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]
Run Code Online (Sandbox Code Playgroud)
输出是:
[0 1 2 2 1 0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5620 次 |
| 最近记录: |