为了账号安全,请及时绑定邮箱和手机立即绑定

Python字符串转换,去掉空格,加连字符

Python字符串转换,去掉空格,加连字符

九州编程 2021-10-19 16:21:03
我在 Pandas 数据框中有一列格式如下f1 d3 a4 0a d0 6a 4b 4a 83 d4 4f c9 1f 15 11 17我想把它转换成这样:f1d3a40a-d06a-4b4a-83d4-4fc91f151117我知道我可以用来replace(" ", "")去掉空格,但我不确定如何在我需要它们的确切位置插入连字符。我也不确定如何将它应用于熊猫系列对象。任何帮助,将不胜感激!
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

这看起来像一个 UUID,所以我只使用那个模块


>>> import uuid

>>> s = 'f1 d3 a4 0a d0 6a 4b 4a 83 d4 4f c9 1f 15 11 17'

>>> uuid.UUID(''.join(s.split()))

UUID('f1d3a40a-d06a-4b4a-83d4-4fc91f151117')

>>> str(uuid.UUID(''.join(s.split())))

'f1d3a40a-d06a-4b4a-83d4-4fc91f151117'

编辑:


df = pd.DataFrame({'col':['f1 d3 a4 0a d0 6a 4b 4a 83 d4 4f c9 1f 15 11 17',

                          'f1 d3 a4 0a d0 6a 4b 4a 83 d4 4f c9 1f 15 11 17']})


df['col'] = df['col'].str.split().str.join('').apply(uuid.UUID)

print (df)

                                    col

0  f1d3a40a-d06a-4b4a-83d4-4fc91f151117

1  f1d3a40a-d06a-4b4a-83d4-4fc91f151117


查看完整回答
反对 回复 2021-10-19
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

a = "f1 d3 a4 0a d0 6a 4b 4a 83 d4 4f c9 1f 15 11 17"

c = "f1d3a40a-d06a-4b4a-83d4-4fc91f151117"

b = [4,2,2,2,6]


def space_2_hyphens(s, num_list,hyphens = "-"):

    sarr = s.split(" ")

    if len(sarr) != sum(num_list):

        raise Exception("str split num must equals sum(num_list)")

    out = []

    k = 0

    for n in num_list:

        out.append("".join(sarr[k:k + n]))

        k += n

    return hyphens.join(out)



print(a)

print(space_2_hyphens(a,b))

print(c)


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信