回复“资源”即可获赠Python学习资料 大家好,我是皮皮。
一、前言前几天在Python白银交流群【在途中要勤奋的熏肉肉🤪】问了一道Pandas 处理的问题,如下图所示。  原始数据如下图所示:  下面是她自己写的代码: # df['name'] = df['name'].str.lower() test['pid'] = test['pid'].astype(int) test['arr0'] = test['arr0'].astype(str) test['arr1'] = test['arr1'].astype(str) test['arr2'] = test['arr2'].astype(str) test['arr3'] = test['arr3'].astype(str) aggregate_funcs = { 'arr0': lambda s: '-'.join(set(s)), 'arr1': lambda s: '-'.join(set(s)), 'arr2': lambda s: '-'.join(set(s)), 'arr3': lambda s: '-'.join(set(s)), } testdf = test.groupby(test['pid']).aggregate(aggregate_funcs) print(testdf)
目前的大概思路如下:  二、实现过程这里【月神】给了一份示例代码,如下所示: arr0_3 = ['arr0', 'arr1', 'arr2', 'arr3'] data[arr0_3] = data[arr0_3].astype(str) data.groupby('pid')[arr0_3].agg(lambda x: x.drop_duplicates().str.cat(sep='-'))
运行之后,结果如下图所示:  没想到还可以批量地做转换,真是太强了! 顺利地解决了粉丝的问题。
 三、总结大家好,我是皮皮。这篇文章主要盘点了一道使用Pandas 处理数据的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。 最后感谢粉丝【在途中要勤奋的熏肉肉🤪】提问,感谢【月神】给出的思路和代码解析,感谢【dcpeng】、【猫药师Kelly】等人参与学习交流。 ------------------- End -------------------
|