Python Jupyter Notebook中如何反转DataFrame每列的链接顺序
问题根因
你原有代码失效是两个逻辑错误导致的:
- 调用
str.split()时未传入指定分隔符,默认按空白字符切分字符串,没有按逗号分隔规则拆分URL列表 - 反转后拼接字符串时使用空格作为连接符,和原数据
逗号+空格的分隔格式不匹配,输出结果不符合预期
正确实现代码
直接按原数据的分隔规则做切分、反转、拼接即可,代码如下:
# 按", "(逗号+空格)切分URL字符串为列表,反转列表后用相同分隔符拼接回字符串 df['Image URLs'] = df['URL'].str.split(', ').apply(lambda x: ', '.join(x[::-1]))
用给出的示例数据验证效果:
反转前:
www.a.com, www.b.com, www.c.com, www.d.com, www.e.com
反转后:www.e.com, www.d.com, www.c.com, www.b.com, www.a.com
如果你的数据存在分隔符不统一的情况(比如逗号前后空格数不一致、个别URL前后带多余空白),可以用正则切分做容错处理:
# 容错版本:自动适配逗号前后0到多个空白的分隔场景,切分后自动清理URL首尾空白 df['Image URLs'] = df['URL'].str.split(r'\s*,\s*').apply(lambda x: ', '.join(x[::-1]))
内容的提问来源于stack exchange,提问作者Dom
相关产品推荐
相关产品推荐

