首页 > 解决方案 > 拆分多个分隔符插入到数据框python

问题描述

我在一个文件中有两个分隔符,我必须用 | 分割 并拆分,并插入到数据框中的 3 列


input.txt

a,1|b,2,4|c,3
a,2|b|c,5


output should be 

a,b,c
1,[2,4],3
2,NULL,5

I have tried below but got stuck 



import numpy as np
import pandas as pd
import re


file1 = open("sample.txt")

dit={}

for line in file1.readlines():
    read = re.split('\|',line.strip())
    for word in read:
        key = word.split(',')
        if(len(key) > 1):
            dit[key[0]]=key[1]
        else:
            dit[key[0]]="NULL"
        
       
df = pd.DataFrame(dit,columns=["a","b","c"],index=[0])


output 

a   b   c
2   NULL    5

输出不更新第一行而不是动态 wrt 以更多逗号分隔。

标签: python

解决方案


从 dict 制作数据框要求每个 dict 值包含该列的值列表。您用新值覆盖以前的值,因此您只能获得数据框中的最后一行。相反,您必须将值附加到每个键的条目。

for word in read:
    key = word.split(',')
    if(len(key) > 1):
        dit[key[0]].append(key[1])
    else:
        dit[key[0]].append("NULL")

这意味着您还必须将每个条目初始化为一个空列表,因此更改此处理:

for word in read:
    key = word.split(',')
    key_char = key[0]
    if key_char not in dit:
        dit[key_char] = []
    if(len(key) > 1):
        dit[key_char].append(key[1])
    else:
        dit[key_char].append("NULL")

然后,您应该将其扩展为更长的键和更长的值;您当前的代码只接受单字符键和值。


推荐阅读