python-如何为数据帧分配特殊索引?

python-如何为数据帧分配特殊索引?,python,dataframe,Python,Dataframe,我有以下数据帧: Col1 Col2 Col3 X Apple A Y Orange B Y Apple B X Apple B X Orange B 我想创建一个4位数的数字来创建索引 逻辑是,当Col1和Col2匹配时,4位数字将与前面相同。 索引是通过组合Number和Col3创建的 Expected output Number Col1 Col2

我有以下数据帧:

Col1    Col2      Col3   
X       Apple      A 
Y       Orange     B
Y       Apple      B
X       Apple      B
X       Orange     B
我想创建一个4位数的数字来创建索引 逻辑是,当Col1和Col2匹配时,4位数字将与前面相同。 索引是通过组合Number和Col3创建的

Expected output
Number  Col1    Col2      Col3   Index
0001    X       Apple      A     0001-A
0002    Y       Orange     B     0002-B 
0003    Y       Apple      B     0003-B
0001    X       Apple      B     0001-B
0004    X       Orange     B     0004-B

如何实现这一点?

首先使用第1列和第2列的连接为索引的数字部分创建一个字典,然后您就拥有了所有行的索引的数字部分,因此只需将索引与第3列连接起来即可

函数获取索引号:

def get_index_编号(行、索引目录):
唯一名称=行['col1']+“-”+行['col2']
如果唯一名称不在索引目录中:
索引目录[唯一名称]=行['number']
返回索引目录[唯一名称]
用法: 假设您在dataframe中已经有列“index”(如果没有添加它)

index_dict={}
对于dataframe.ItErrors()中的行:
行['index']=获取索引编号(行,索引编号)

首先使用列1和列2的串联,为索引的数字部分创建一个字典,然后您就拥有了所有行的索引的数字部分,因此只需将索引与列3串联起来即可

函数获取索引号:

def get_index_编号(行、索引目录):
唯一名称=行['col1']+“-”+行['col2']
如果唯一名称不在索引目录中:
索引目录[唯一名称]=行['number']
返回索引目录[唯一名称]
用法: 假设您在dataframe中已经有列“index”(如果没有添加它)

index_dict={}
对于dataframe.ItErrors()中的行:
行['index']=获取索引编号(行,索引编号)

您可以将自己的尝试添加到代码中吗?这样就更容易知道您使用的数据类型和模块。您可以添加自己的代码吗?这样就更容易知道您使用的是什么数据类型以及哪些模块。