Python 如何为给定列中的每个不同值生成增量列索引
给定以下数据帧:Python 如何为给定列中的每个不同值生成增量列索引,python,pandas,Python,Pandas,给定以下数据帧: df = pd.DataFrame({"values": ["a", "a", "a", "b", "b", "a", "a", "c"]}) 如何生成给定的输出: values out 0 a 0 1 a 1 2 a 2 3 b 0 4 b 1 5 a 0 6 a 1 7 c 0 我可以(如果允许更简单的选项)确保组的唯一性,因此具有如下输
df = pd.DataFrame({"values": ["a", "a", "a", "b", "b", "a", "a", "c"]})
如何生成给定的输出:
values out
0 a 0
1 a 1
2 a 2
3 b 0
4 b 1
5 a 0
6 a 1
7 c 0
我可以(如果允许更简单的选项)确保组的唯一性,因此具有如下输入值:
df = pd.DataFrame({"values": ["a0", "a0", "a0", "b0", "b0", "a1", "a1", "c0"]})
使用
shift
和cumsum
创建键,然后使用category
df['strkey']=(df['values']!=df['values'].shift()).ne(0).cumsum()
df['values']+=df.groupby('values')['strkey'].apply(lambda x : x.astype('category').cat.codes.astype(str))
df
Out[568]:
values strkey
0 a0 1
1 a0 1
2 a0 1
3 b0 2
4 b0 2
5 a1 3
6 a1 3
7 c0 4
可能重复的