我有以下数据框:
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
我该如何实现?
答案 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)