gpt4 book ai didi

Python - 使用分隔符从文本文件中分割数据

转载 作者:行者123 更新时间:2023-12-01 01:07:40 25 4
gpt4 key购买 nike

我正在尝试读取一组文本文件并将它们保存到数据帧中。感谢@jezrael,我已经成功地完成了这项工作,如下所示:

list_ = []
dfs = []
for file_ in allFiles:
with open(file_) as fp:
lines1 = fp.read().split('\n')
b = [i.split('~', 1)[1].split('*') for i in lines1]
df = pd.DataFrame(b)
dfs.append(df)

dfbig = pd.concat(dfs, ignore_index=True)
dfbig.to_csv('file.csv')

但是,我发现有几行有多个 ('~') 条目,因此每次 ('~') 在一行只执行一次分割。我想看看如何修改上面的代码,以便每次出现 ('~') 时都会发生拆分。

示例数据:

[ABC*DEF*123>~123*999*HHH~HELLO*TEST*DATA]

预期输出:

123 999 HHH
HELLO TEST DATA

最佳答案

您可以更改:

b = [i.split('~', 1)[1].split('*') for i in lines1]

通过按所有 ~ 值进行展平和分割来列出理解,并过滤掉第一个值:

b = [x.split('*') for i in lines1 for x in i.split('~')[1:]]

验证:

lines1 = ['ABC*DEF*123>~123*999*HHH~HELLO*TEST*DATA']
b = [x.split('*') for i in lines1 for x in i.split('~')[1:]]
print (b)
[['123', '999', 'HHH'], ['HELLO', 'TEST', 'DATA']]

然后应该使用 extend 更改解决方案:

list_ = []

allFiles = glob.glob('csv/*.*')
for file_ in allFiles:
with open(file_) as fp:
lines1 = fp.read().split('\n')
b = [x.split('*') for i in lines1 for x in i.split('~')[1:]]
list_.extend(b)

dfbig = pd.DataFrame(list_)

关于Python - 使用分隔符从文本文件中分割数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55184193/

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