Saf*_*der -1 python dataframe pandas
给定从 CSV 解析的一些数组,如下所示(不用担心解析部分,只需将此数组视为起点)。
说:
['name,age,city', 'tom,12,new york','john, 10, los angeles']
这样第一个索引是列名,将其转换为表的最佳方法是什么。我正在考虑使用 numpy 和 pandas 来创建数据框,但是最有效的内存/时间转换方法是什么?然后我计划做一些数据分析并创建一些新功能。标准 python 库中是否有我可以使用的东西,或者 pandas 是解决这个问题的最佳方法?如果我只使用内置函数,我会怎么做?最后,我需要将这些功能组合回数组的原始形式。
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)
| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |