如何在列表中附加多个字符串值如果存在于列表中

问题描述

我有一个列表“lst1”,如果存在,我想在一行中附加多个值。谁能帮我解决这个问题。

lst1 = [['cnl','fb123','ins54'],['ins45'],['abc','xyz'],'xyz','fb765','ins567']]
adn = ['ab','cc']

fb = []
ins = []
otr = []

for lnk in lst1:
    for lnk2 in lnk:
        if 'fb' in lnk2:
            try:
                fb.append(lnk2)
            except:
                fb.append("")
        elif 'ins' in lnk2:
            try:
                ins.append(lnk2)
            except:
                ins.append("")
        elif ('fb' or 'ins') not in lnk2:
            try:
                otr.append(lnk2)
            except:
                otr.append("")

data = {}
data = {'fb': fb,'ins': ins,'otr': otr,'adn': adn}

result = pd.DataFrame(dict([(k,pd.Series(v)) for k,v in data.items()])) 
result.to_csv("raw_data.csv",index = False)

预期输出:

    fb      ins     otr       adn
0   fb123   ins54   cnl       ab
1           ins45             cc
2                   abc,xyz 
3   fb765   ins567  abc,xyz 

即便如此,我也尝试过“扩展”功能,但无法获得所需的输出。

解决方法

我不明白为什么在输出示例中第三行和第四行是空的?为什么'abc,xyz'在第二行?

仅根据描述实施。如果您想排除重复,您还可以将 *_check 列表转换为 set 。

import pandas as pd

lst1 = [['cnl','fb123','ins54'],['ins45'],['abc','xyz'],'xyz','fb765','ins567']]
adn = ['ab','cc']

fb = []
ins = []
otr = []

for lnk in lst1:
    fb_check = [word for word in lnk if word.startswith('fb')]
    ins_check = [word for word in lnk if word.startswith('ins')]
    otr_check = [word for word in lnk if not word.startswith('fb') and not word.startswith('ins')]

    fb.append(','.join(fb_check) if fb_check else '')
    ins.append(','.join(ins_check) if ins_check else '')
    otr.append(','.join(otr_check) if otr_check else '')

while len(adn) != len(fb):
    adn.append('')

data = {'fb': fb,'ins': ins,'otr': otr,'adn': adn}


result = pd.DataFrame(dict([(k,pd.Series(v)) for k,v in data.items()]))
print(result)
result.to_csv("raw_data.csv",index=False)

输出:

      fb     ins      otr  adn
0  fb123   ins54      cnl   ab
1          ins45            cc
2                 abc,xyz  
3  fb765  ins567  abc,xyz  

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...