私はCSVにいくつかのデータを表示しています。私はそれを賢明な形にしようとしているので、y軸[18,22,24]と[58,68,55]に対して共通のx軸[1、2、3]を 'A'そして伝説としての「B」。Pythonの2D/3DリストにぎこちないCSVを追加
私の現在の考えは、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に、ポイント2の22はA2に対応しています。空の 'セル'をチェックして現在の配列に挿入しようとしましたが、非常に乱雑ですが、これを拡張しようとしています50以上の列と20以上の行に対処できます。
,A,B
1,A1,B4
,18,58
2,A2,B5
,22,68
3,A3,B6
,24,55
アドバイスhereは役に立ちましたが、私の状況には適用できませんでした。以下のコードは1つのカラムで機能しましたが、さらに操作が必要で、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を使用しています。 – PythonicRitual