我必须导入3维数据表才能在我的python脚本中对其进行操作。
我拥有的3个维度是:
险种行和年龄列不是固定的,这意味着我可能比下面的示例更多或更少。
我当前的测试数据看起来像(FWD_FIXED_5YRS.csv);
COVERAGE Age 18 Age 20 Age 25 Age 30 Age 35 Age 40 Age 45 Age 50 Age 55 Age 60
50000.00 53.00 53.00 53.00 53.00 55.50 67.50 82.50 129.00 175.50 288.50
100000.00 54.00 54.00 54.00 60.00 74.00 117.00 146.00 198.00 331.00 536.00
150000.00 78.50 78.50 81.00 90.00 111.00 169.50 219.00 307.50 496.50 804.00
200000.00 108.00 108.00 108.00 120.00 148.00 222.00 292.00 410.00 662.00 1027.00
250000.00 87.50 87.50 90.00 102.50 124.00 165.00 235.00 350.00 557.50 1215.00
300000.00 105.00 105.00 108.00 123.00 147.00 198.00 282.00 420.00 669.00 1458.00
....
....
我尝试了另一个qn的操作,但似乎只获得了前几列:
import csv
with open('FWD_FIXED_5YRS.csv', 'r') as f:
obj = csv.reader(f)
X, Y, Z = [], [], []
for i,row in enumerate(obj):
if i>0:
xstring = row[0]
ystring = row[1]
zstring= row[2]
print (xstring, ystring, zstring)
这可以使用pandas
模块轻松完成。如果可以使用pandas
模块,则可以按以下方式读取csv。
import pandas as pd
df = pd.read_csv('FWD_FIXED_5YRS.csv', sep='\t', index_col='COVERAGE')
df
它将给出以下结果,
Age 18 Age 20 Age 25 Age 30 Age 35 Age 40 Age 45 Age 50 Age 55 Age 60
COVERAGE
50000.0 53.0 53.0 53.0 53.0 55.5 67.5 82.5 129.0 175.5 288.5
100000.0 54.0 54.0 54.0 60.0 74.0 117.0 146.0 198.0 331.0 536.0
150000.0 78.5 78.5 81.0 90.0 111.0 169.5 219.0 307.5 496.5 804.0
200000.0 108.0 108.0 108.0 120.0 148.0 222.0 292.0 410.0 662.0 1027.0
250000.0 87.5 87.5 90.0 102.5 124.0 165.0 235.0 350.0 557.5 1215.0
300000.0 105.0 105.0 108.0 123.0 147.0 198.0 282.0 420.0 669.0 1458.0