原表格数据如下
不重复的数据不编号
最快是用pandas处理,读取excel,然后对数据处理就行了
具体可以参考:
先标记重复的列,再 apply 一个 handle 函数进行修改
import pandas as pd
import random as r
lis = list("甲乙丙丁戊己庚辛壬癸")
df = pd.DataFrame(data=[r.choice(lis) for i in range(10)], index=range(1, 11), columns=["data"])
df["bool"] = df.duplicated("data", keep=False)
d = {}
def handle(row, dic=d):
if not row["bool"]:
return row
value = row["data"]
if value in dic.keys():
dic[value] += 1
else:
dic[value] = 1
row["data"] = value + str(dic[value])
return row
res = df.apply(handle, axis=1)
# res
import pandas as pd
df1=pd.read_excel(r'C:\Users\jackey\Desktop\CSDN/test.xlsx')
df=df1[['A']]
ds1=df.groupby(['A'])
df2=dict(list(ds1))
df_final=pd.DataFrame()
for i,j in df2.items():
if len(j['A'])>=2:
j.reset_index(inplace=True,drop = True)
j['B']=j.index+1
j['B']=j['B'].apply(str)
j['A'] = j['A'].apply(str)
j['A']=j['A']+j['B']
j = j.drop(['B'], axis=1)
df_final=df_final.append(j)
df_final.reset_index(inplace=True,drop = True)
print(df_final)
可以参考这个思路,可以实现。编号可以自己微调,比如加一列
df_final['编号']=df_final.index+1
A
0 丁
1 丙1
2 丙2
3 乙1
4 乙2
5 甲1
6 甲2
如果对你有帮助,帮忙采纳下,多谢!