小编Avi*_*ton的帖子

在pandas数据帧中将列拆分为多个具有特定名称的列

我有以下数据框:

pri    sec
TOM    AB,CD,EF
JACK   XY,YZ
HARRY  FG
NICK   KY,NY,SD,EF,FR
Run Code Online (Sandbox Code Playgroud)

我需要跟随列名称的输出如下(基于列'sec'中存在多少个分隔的字段):

pri    sec             sec0  sec1  sec2  sec3 sec4
TOM    AB,CD,EF        AB    CD    EF    NaN  NaN
JACK   XY,YZ           XY    YZ    NaN   NaN  NaN
HARRY  FG              FG    NaN   NaN   NaN  NaN
NICK   KY,NY,SD,EF,FR  KY    NY    SD    EF   ER
Run Code Online (Sandbox Code Playgroud)

我可以得到任何建议吗?

python dataframe pandas

7
推荐指数
1
解决办法
5911
查看次数

从两个列表创建自定义词典

我有两个python列表.

prob_tokens = ['119', '120', '123', '1234', '12345']

complete_tokens = ['112', '120', '121', '123', '1233', '1234', '1235', '12345']

min_len_sec_list = 3
max_len_sec_list = 5
Run Code Online (Sandbox Code Playgroud)

我想创建一个字典,其中第一个列表中的元素作为键并具有以下约束:

  1. 如果第二个列表中不存在键,则值为False.
  2. 如果键存在于带有变体的第二个列表中,则值将为False.

例如:

(i)在检查时123,如果1234,12345存在(123*)在第二个列表中,那么值123将是False.

(ⅱ).同样在检查时1234,如果12345exists(1234*)则值为False.

*将是[0-9]{(max_len-len_token)}

  1. 如果密钥存在于没有变体的第二个列表中,那么值将是True.

输出:

final_token_dict

{'119': False,'120': True, '123': False, '1234': False, '12345': True}
Run Code Online (Sandbox Code Playgroud)

我可以获得有关如何实现这一目标的任何建议吗?提前致谢!!!

python string dictionary

6
推荐指数
1
解决办法
128
查看次数

最小化if函数中的if语句

我有以下函数,它从pandas dataframe列获取值并提供参数(s0_loc,s1_loc,.. upto ..,s12_loc,当且仅当它们各自的s0,s1,s2 ...,s12不为空时)到另一个功能.另外,当且仅当s0不为空时,它将检查s1是否为空...类似地,它将检查s2是否为空,如果是s0,则s1不为空.所以...

根据以上标准,我写了以下功能.但它的功能很长......我想减少这个函数中的代码片段.

def compare_locality(p,p_loc,s0,s0_loc,s1,s1_loc,s2,s2_loc,s3,s3_loc,s4,s4_loc,s5,s5_loc,s6,s6_loc,s7,s7_loc,s8,s8_loc,s9,s9_loc,s10,s10_loc,s11,s11_loc,s12,s12_loc):
    loc = []
    if s0 != '' :
        loc.append(s0_loc)
        if s1 != '' :
            loc.append(s1_loc)
            if s2 != '' :
                loc.append(s2_loc)
                if s3 != '' :
                    loc.append(s3_loc)
                    if s4 != '' :
                        loc.append(s4_loc)
                        if s5 != '' :
                            loc.append(s5_loc)
                            if s6 != '' :
                                loc.append(s6_loc)
                                if s7 != '' :
                                    loc.append(s7_loc)
                                    if s8 != '' :
                                        loc.append(s8_loc)
                                        if s9 != '' :
                                            loc.append(s9_loc)
                                            if s10 != '' :
                                                loc.append(s10_loc)
                                                if s11 != …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

1
推荐指数
1
解决办法
74
查看次数

标签 统计

python ×3

dataframe ×2

pandas ×2

dictionary ×1

string ×1