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

我在 Pandas 数据框中有一列格式如下

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

我想把它转换成这样:

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

我知道我可以用来replace(" ", "")去掉空格,但我不确定如何在我需要它们的确切位置插入连字符。

我也不确定如何将它应用于熊猫系列对象。

任何帮助,将不胜感激!


九州编程
浏览 183回答 2
2回答

慕森卡

这看起来像一个 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)                                    col0  f1d3a40a-d06a-4b4a-83d4-4fc91f1511171  f1d3a40a-d06a-4b4a-83d4-4fc91f151117

慕无忌1623718

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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python