将字符串数组转换为表格的最佳方法是什么?

Saf*_*der -1 python dataframe pandas

给定从 CSV 解析的一些数组,如下所示(不用担心解析部分,只需将此数组视为起点)。

说: ['name,age,city', 'tom,12,new york','john, 10, los angeles']

这样第一个索引是列名,将其转换为表的最佳方法是什么。我正在考虑使用 numpy 和 pandas 来创建数据框,但是最有效的内存/时间转换方法是什么?然后我计划做一些数据分析并创建一些新功能。标准 python 库中是否有我可以使用的东西,或者 pandas 是解决这个问题的最佳方法?如果我只使用内置函数,我会怎么做?最后,我需要将这些功能组合回数组的原始形式。

AKX*_*AKX 5

pprint仅限内置函数(打印除外):

import pprint

data = [
    "name,age,city",
    "tom,12,new york",
    "john, 10, los angeles",
]
cols = None
out_data = []
for line in data:
    line = line.split(",")

    # We don't know the columns yet; must be the first line
    if not cols:
        cols = line
        continue
    out_data.append(dict(zip(cols, line)))

pprint.pprint(out_data)
Run Code Online (Sandbox Code Playgroud)

使用csv标准模块:

import csv
import io
import pprint

data = [
    "name,age,city",
    "tom,12,new york",
    "john, 10, los angeles",
]

reader = csv.DictReader(io.StringIO('\n'.join(data)))
out_data = list(reader)

pprint.pprint(out_data)
Run Code Online (Sandbox Code Playgroud)

两种方法都会输出预期的结果:

[{'age': '12', 'city': 'new york', 'name': 'tom'},
 {'age': ' 10', 'city': ' los angeles', 'name': 'john'}]
Run Code Online (Sandbox Code Playgroud)