【发布时间】:2017-10-11 23:46:09
【问题描述】:
我在 CSV 中有一些数据,如下所示。我试图把它变成一个合理的形式,所以我可以用'A'绘制公共 x 轴 [1, 2, 3] 与 y 轴 [18, 22, 24] 和 [58, 68, 55]和“B”作为传说。
我目前的想法是以下结构最简单,尽管我得到 x 轴的重复。
[['A',[1,'A1',18],[2,'A2',22],[3,'A3',24]],
['B',[1,'B4',58],[2,'B4',68],[3,'B6',55]]]
这是丑陋的数据。正如您可能知道的那样,A 和 B 是标题。 18 对应于第 1 点的 A1,22 对应于第 2 点的 A2,等等。我尝试检查空的“单元格”并插入到当前数组中,但是它变得非常混乱,我一直试图扩展它以便它可以处理 50+ 列和 20+ 行。
,A,B
1,A1,B4
,18,58
2,A2,B5
,22,68
3,A3,B6
,24,55
here 的建议很有帮助,但我无法将其应用于我的情况。以下代码适用于一列,但在我向 CSV 文件添加其他列后需要进一步操作并分解。
import csv
arr = []
datafile = open('datafile1.csv', 'r', newline='')
reader = csv.reader(datafile)
for row in reader:
if row[0] != "":
#print(row)
arr.append(row)
elif row[1] != "":
arr[-1].insert(len(arr),row[1])
datafile.close()
提前感谢您提供的任何帮助!
【问题讨论】:
-
如果可能的话,我建议您编辑您的原始数据。目前,行在标签和数据之间交替。这里只有 6 个真实数据点。然后是索引 (1, 2, 3) 和标题 ("A", "B")。
-
感谢您的回复。不幸的是,我被格式卡住了,这令人沮丧。将它们逐行转储到一个列表中,然后从那里进行操作会更好吗?目前的方法使用 Excel VBA,非常缓慢且繁琐。
标签: python