gpt4 book ai didi

python - 将数据框列中的字符串映射到数值

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:39 25 4
gpt4 key购买 nike

大家好,

我需要将字符串中的字符更改为 pandas 系列的数值,如下所示:

df = ['FF-FFF--FF+F-FFF',
'F+-++--F+FF+-++-',
'F++-FF-F-+F++-FF',
'F+++++++++++++++',
'F-F+-F-F+-F-F+-F',
'F--F-+FFF+-FFF+-',
'F+F-+F+F-+F+F-+F',
'F--F--+-+++--F--',
'F+FF--+FF--+FF--',
'F-F+-+-F+-+-F+-+',
'F++++-++++-++++-',
'F+---++---++---+',
'F+-+FF+-+FF+-+FF',
'F+-FF-+-FF---+-F',
'FF-+F+F-+F+F-+F+',
'F+F+--+F+--+F+--',
'FF+F-FFF---F+F-F',
'FF+-FF-+---F+-FF',
'F++--+++--+++--+']

num_dict = {'+':1, '-':2, 'F':3}

transformed_df = [3323332233132333,
3121122313312112,
3112332321311233,
3111111111111111,
3231232312323123,
3223213331233312,
3132131321313213,
3223221211122322,
3133221332213322,
3231212312123121,
3111121111211112,
3122211222112221,
3121331213312133,
3123321233222123,
3321313213132131,
3131221312213122,
3313233322231323,
3312332122231233,
3112211122111221]

我试过了 mapping数据框到字典,但只考虑整个字符串而不是每个字符。然后我尝试将字符串映射到元组,然后再映射到字典,但这也不起作用。

最佳答案

你可以通过 dict.get() 来做到这一点:

s = pd.Series(df)
s.apply(lambda x: ''.join([str(num_dict.get(i)) for i in list(x)]))

0     3323332233132333
1 3121122313312112
2 3112332321311233
3 3111111111111111
4 3231232312323123
5 3223213331233312
6 3132131321313213
7 3223221211122322
8 3133221332213322
9 3231212312123121
10 3111121111211112
11 3122211222112221
12 3121331213312133
13 3123321233222123
14 3321313213132131
15 3131221312213122
16 3313233322231323
17 3312332122231233
18 3112211122111221
dtype: object

注意:如果您希望数字作为数字而不是字符串,您可以稍后执行 s=pd.to_numeric(s,errors='coerce')

关于python - 将数据框列中的字符串映射到数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56864142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com