dataframe对某列按照拼音的顺序进行排序
代码
import pandas as pd
from pypinyin import lazy_pinyin
a_dict = {
"index": [1, 2, 3, 4],
"name": ['张三', '李四', '王五', '王六']
}
a_df = pd.DataFrame(a_dict)
a_df['y'] = a_df['name'].apply(lambda x: lazy_pinyin(x)[0][0])
a_df['z'] = a_df['name'].apply(lambda x: lazy_pinyin(x)[1][0])
a_df = a_df.sort_values(by=['y', 'z'], ascending=True)
a_df.drop(columns='y', inplace=True)
a_df.drop(columns='z', inplace=True)
输出
index name
1 2 李四
3 4 王六
2 3 王五
0 1 张三