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

时间:2019-12-05 04:09:38

标签: 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      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 个答案:

答案 0 :(得分:0)

首先使用列1和2的串联为索引的数字部分创建字典,然后获得所有行的索引的数字部分,因此只需将索引与列3串联。

获取索引号的函数:

def get_index_number(row,index_dict):
   unique_name=row['col1']+"-"+row['col2']
   if unique_name not in index_dict:
      index_dict[unique_name]=row['number']
   return index_dict[unique_name]

用法: 假设您已经在数据框中添加了“索引”列(如果未添加)

index_dict={}
for row in dataframe.iterrows():
   row['index']=get_index_number(row,index_dict)