我有一个包含以下格式数据的CSV文件:
[( 7, 1818, 1, 8, 1818.021, 65, 10.2, 1, 1)
( 12, 1818, 1, 13, 1818.034, 37, 7.7, 1, 1)
( 16, 1818, 1, 17, 1818.045, 77, 11.1, 1, 1) ...
(73715, 2019, 10, 29, 2019.826, 0, 0. , 30, 0)
(73716, 2019, 10, 30, 2019.829, 0, 0. , 24, 0)
(73717, 2019, 10, 31, 2019.832, 0, 0. , 28, 0)]
每列对应不同的数据。第二列对应年份。我必须在1900年到2000年的1000个时间步中插入所有数据。困难在于这是一个CSV文件,有多列,我必须在1000个时间步中插入每一列。
我首先用这段代码收集了1900年到2000年的所有数据:
index1 = np.where(arr['year']==1900)[0][0]
index2 = np.where(arr['year']==2000)[0][-1]
data = arr[index1:index2]
其给出:
[(29950, 1900, 1, 1, 1900.001, 12, 3. , 1, 1)
(29951, 1900, 1, 2, 1900.004, 12, 3. , 1, 1)
(29952, 1900, 1, 3, 1900.007, 3, 2. , 1, 1) ...
(66836, 2000, 12, 28, 2000.99 , 162, 7. , 13, 1)
(66837, 2000, 12, 29, 2000.993, 151, 11.7, 15, 1)
(66838, 2000, 12, 30, 2000.996, 152, 10.6, 11, 1)]
这段数据的长度是36889。现在我需要在1000个时间步中插入这段数据。
我不知道该怎么做,我一直在反复使用scipy中的np.interpd()和interp1d,但是我一直被卡住了,因为没有明确的例子来说明如何对csv文件中的每一列执行此操作。
我希望这件事不要有Pandas,也不要形成循环。
1条答案
按热度按时间igsr9ssn1#
以下是如何使用某些整数索引值进行插值的示例: