熊猫数据框列和行中的拆分列表

Posted

技术标签:

【中文标题】熊猫数据框列和行中的拆分列表【英文标题】:Split list in panda dataframe columns and rows 【发布时间】:2021-02-26 18:58:16 【问题描述】:

我为一个网站写了一个小爬虫,得到了一个如下结构的列表:

'DRAFT ACT: OPEN\nSome Information \nTopic\nJustice\nType\nImplementing\nPeriod\n12.11.2020 - 10.12.2020', 'DRAFT ACT: OPEN\Some other Information\nTopic\nJustice\nType\nImplementing\nPeriod\n12.11.2020 - 10.12.2020,...

现在我想将此文本列表分成一个 pandas 数据框,将列按\n 划分,将行按, 划分。不幸的是,我不知道如何接近他。有人可以帮我吗?有没有一种简单的方法可以使用 pandas 或其他包来拆分此列表?

结果应该是这样的:

     Column1          Column2                Column3 Column4  Column5 Columns6     Column7  Column8
Row1 DRAFT ACT: OPEN  Some Information       Topic   Justice  Type    Implementing Period   12.11.2020 - 10.12.2020'
Row2 DRAFT ACT: OPEN  Some other Information Topic   Justice  Type    Implementing Period   12.11.2020 - 10.12.2020'

非常感谢您!

【问题讨论】:

【参考方案1】:
import pandas as pd

x = "'DRAFT ACT: OPEN\nSome Information \nTopic\nJustice\nType\nImplementing\nPeriod\n12.11.2020 - 10.12.2020', 'DRAFT ACT: OPEN\nSome other Information\nTopic\nJustice\nType\nImplementing\nPeriod\n12.11.2020 - 10.12.2020'"

x = x.replace("\n","_")

x = x.replace(",","\n")

x = x.replace("_",",")

with open("output.csv", 'w') as file:
    
    file.write(x)

with open('output.csv','r') as file:

    z = pd.read_csv(file)

print(z, type(z))

【讨论】:

【参考方案2】:

假设你得到一个这样的字符串列表。

list1=['DRAFT ACT: OPEN\nSome Information \nTopic\nJustice\nType\nImplementing\nPeriod\n12.11.2020 - 10.12.2020', 'DRAFT ACT: OPEN\nSome other Information\nTopic\nJustice\nType\nImplementing\nPeriod\n12.11.2020 - 10.12.2020']

您可以迭代列表并在 \n

上拆分每个项目

喜欢:

list1=[x.split('\n') for x in list1]

或喜欢:

for idx,item in enumerate(list1):
    list1[idx]=item.split('\n')

现在您可以使用 list1 创建一个数据框。

import pandas as pd
df=pd.DataFrame(list1,columns=['Column1','Column2','Column3','Column4','Column5','Column6','Column7','Column8'])

【讨论】:

以上是关于熊猫数据框列和行中的拆分列表的主要内容,如果未能解决你的问题,请参考以下文章

将熊猫数据框列列表值拆分为重复行[重复]

熊猫数据框列上的子字符串

SQL查询以查找列和行中的最大值

从 PySpark 中的选定列和行中提取值

如何将选定列和行中的DataGridView值插入ListView?

从列表列表中提取元素并将其分配为熊猫数据框列中的值