首先我的csv文件是这样的:
没有标题的。
用pandas读取,添加表头
data_item={'CATEGORY': 'Toys & Hobbies', 'SUBCATEGORY': 'TV, Movie & Character Toys', 'SELL_RATE': '90%', 'ASP': '$7.46', 'AVG_SCHEDULING_FEE': '$1.26', 'RECENT_EXAMPLES': ['136394654', '136422693', '136566144'], 'IMG_EXAMPLES': ['https://images.tophatter.com/caf8ac17e5876b31248093f41ffafaee/square.jpg', 'https://images.tophatter.com/2728b2409e07c5fe8cf9440f01ba4e3f/square.jpg', 'https://images.tophatter.com/67d1291e51f93e3204a288fcfba5840c/square.jpg']}
data_item.keys()
输出的结果:
dict_keys(['CATEGORY', 'SUBCATEGORY', 'SELL_RATE', 'ASP', 'AVG_SCHEDULING_FEE', 'RECENT_EXAMPLES', 'IMG_EXAMPLES'])```
直接读取的结果,默认是header=0
https://zhuanlan.zhihu.com/p/44503744 这个是大佬的链接,写的比较详细
df1=pd.read_csv('./data2.csv',header=None, names=data_item.keys(),encoding='utf-8')
df1
首先将列表的那一列格式转化为列表。使用的是eval()方法。
s_id_1=df1.RECENT_EXAMPLES.apply(lambda x : eval(x))
s_id_1
我用的方法比较笨,将处理格式的数据也即是一个Series类型的,增加为新的一列
然后对新的一列使用stack方法。
用pandas进行数据重排时,经常用到stack和unstack两个函数。stack的意思是堆叠,堆积,unstack即“不要堆叠”,然后对索引重置
https://blog.csdn.net/liyazhou0215/article/details/70160115 对reset_index 进行解释
将原来的一列删除,将展开的一列从新插入。。