【发布时间】:2020-06-01 19:14:13
【问题描述】:
我正在尝试读取 CSV 文件并遍历 10 行块。 数据很不寻常,有两列和 10 行块。
57485 行 x 2 列,格式如下:
Grid-ref= 1,148
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
3020 2820 3040 2880 1740 1360 980 990 1410 1770 2580 2630
Grid-ref= 1,311
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
490 290 280 230 200 250 440 530 460 420 530 450
Grid-ref= 1,312
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
460 280 260 220 190 240 430 520 450 400 520 410
每 10 行包含一个网格参考和两个记录 X/Y 参考。 网格参考和 X 值在第 1 列,Y 值在第 2 列,然后 9 行 12 列在第 1 列。
The blocks (x) 0 - 9, represent months (Jan - December
The blocks (y) 0 - 9, represent years (1991-2000)
So for 0, is 1991
3020 is January 1991, 2820 is February 1991
Grid-ref = 1 (X),148 (Y)
下面的代码读取了 10 行,但在后面的所有 10 行块中不断重复第一行??
我不明白为什么它一直重复第一行? 任何解决此问题的建议将不胜感激..
## Python 3.6
## Read in the datasets (they are in CSV format)
data = pd.read_csv('cru-ts-2-10-1991-2000-cutdown.csv', skiprows=5, na_values = [-999] )
## View data >> 57485 rows x 2 columns
#print(data)
#print(len(data)) ## len = 57485
## header = pd.MultiIndex.from_product([['Grid-ref', 'Xref', 'Yref'], ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] ])
# df = pd.DataFrame(np.random.randn(10, 11),
# index=['1991','1992','1993','1994','1995', '1996', '1997', '1998', '1999', '2000', '2001'],
# columns=header)
# print(data.head(10)) ## prints chunks of 10 rows
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
for group in chunker(data, 10):
print(group)
前两块:
Grid-ref= 1 148
0 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
1 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
2 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
3 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
4 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
5 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
6 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
7 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
8 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
9 3020 2820 3040 2880 1740 1360 980 990 1410 ... NaN
Grid-ref= 1 148
10 Grid-ref= 1 311.0
11 490 290 280 230 200 250 440 530 460 ... NaN
12 490 290 280 230 200 250 440 530 460 ... NaN
13 490 290 280 230 200 250 440 530 460 ... NaN
14 490 290 280 230 200 250 440 530 460 ... NaN
15 490 290 280 230 200 250 440 530 460 ... NaN
16 490 290 280 230 200 250 440 530 460 ... NaN
17 490 290 280 230 200 250 440 530 460 ... NaN
18 490 290 280 230 200 250 440 530 460 ... NaN
19 490 290 280 230 200 250 440 530 460 ... NaN
【问题讨论】:
-
请发布您的 CSV 样本。
-
您希望表格是什么样的?网格参考是否应该集成为一列? pandas 适用于统一的柱状数据,而这个数据集并不完全如此。您可能希望使用常规的 python csv 模块进行预处理,以获取您想要的数据作为要交给 pandas 的列表或作为已转换为您想要的形式的中间文件。
-
上面的前几块数据我已经添加了,无法添加到cmets中。
-
您好,我想提取 Grid-ref,X/Y,然后创建一个带有 Grid-ref,X/Y,日期的 DataFrame。对于 0 = 1991 年 1 月 = 3020,1991 年 2 月 = 2820
标签: python python-3.x pandas csv dataframe