将多个字符串的列表转换为Python数据框架

2024-04-25 09:43:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串值列表,我是从一个带有splitlines的文本文档中读取的。结果是这样的

       X = ["NAME|Contact|Education","SMITH|12345|Graduate","NITA|11111|Diploma"]

我试过这个

for i in X:
    textnew = i.split("|")
    data[x] = textnew

我想用这个做一个数据帧

    Name     Contact      Education
    SMITH     12345        Graduate
    NITA      11111        Diploma

Tags: 字符串namein列表forcontact文本文档split
1条回答
网友
1楼 · 发布于 2024-04-25 09:43:23

这是解决你问题的办法

import pandas as pd
X = ["NAME|Contact|Education","SMITH|12345|Graduate","NITA|11111|Diploma"]
data = []
for i in X:
    data.append( i.split("|") )
df = pd.DataFrame( data, columns=data.pop(0))
网友
2楼 · 发布于 2024-04-25 09:43:23

实际上,它几乎是正确的,但是不要使用data作为字典(通过使用键-data[x] = textnew):

X = ["NAME|Contact|Education","SMITH|12345|Graduate","NITA|11111|Diploma"]
df = []

for i in X:
    df.append(i.split("|"))

print(df)

# [['NAME', 'Contact', 'Education'], ['SMITH', '12345', 'Graduate'], ['NITA', '11111', 'Diploma']]

这取决于进一步的转变,但熊猫可能是这种任务的过度杀伤力

网友
3楼 · 发布于 2024-04-25 09:43:23

通过将sep参数指定给pd.read_csv,可以直接从文件中读取它。你知道吗

df = pd.read_csv("/path/to/file", sep='|')

或者如果您希望将其从字符串列表转换为:

data = [row.split('|') for row in X]
headers = data.pop(0) # Pop the first element since it's header
df = pd.DataFrame(data, columns=headers)

相关问题 更多 >