import pandas as pd
import numpy as np
df = pd.DataFrame({'id': ['12a4', '12a4', '3b', '3b', '3b', '4t'],
'col1': ['summer', 'goest', 'yes', 'No', 'why', 'Hi']})
unique_id = df.drop_duplicates(subset=['id']).reset_index(drop=True)
id_dict = dict(zip(unique_id['id'], unique_id.index))
df['id'] = df['id'].apply(lambda x: id_dict[x])
df.drop_duplicates(subset=['id']).reset_index(drop=True)删除 column 中的重复行id。
# print(unique_id)
id col1
0 12a4 summer
1 3b yes
2 4t Hi
dict(zip(unique_id['id'], unique_id.index))id从列和索引值创建字典。
# print(id_dict)
{'12a4': 0, '3b': 1, '4t': 2}
df['id'].apply(lambda x: id_dict[x])使用 dict 中的值设置列值映射。
# print(df)
id col1
0 0 summer
1 0 goest
2 1 yes
3 1 No
4 1 why
5 2 Hi