在现有xarray数据集中分配坐标并更改为时间戳格式

0 投票
1 回答
31 浏览
提问于 2025-04-14 16:58

目前我有一个 pandas 数据框,看起来像这样(它最初来自一个很大的 csv 文件,我这里提供了一个小片段)

ds = pd.DataFrame([('2020-312T00:00:00.746', 2.466000e-15, 2.330500e-15, 2.949800e-15, 7.497400e-15, 3.682900e-15, 6.375300e-15),
                   ('2020-312T00:00:01.746', 1.406300e-14, 1.319700e-14, 6.588400e-15, 5.245300e-15, 4.462600e-15, 6.375300e-15),
                   ('2020-312T00:00:02.746', 9.389400e-15, 7.542200e-15, 5.433000e-15, 2.355100e-15, 7.388700e-15, 3.852900e-15),
                   ('2020-312T00:00:03.746', 5.252700e-15, 4.338100e-15, 6.588400e-15, 5.245300e-15, 2.934300e-15, 6.375300e-15),
                   ('2020-312T00:00:04.746', 5.252700e-15, 9.345600e-15, 3.340000e-15, 5.245300e-15, 8.766700e-15, 4.640600e-15)],
                   columns=['Epoch', ' Freq_1.12E+04', 'Freq_1.25E+04', 'Freq_1.41E+04', 'Freq_1.58E+04', 'Freq_1.77E+04', 
                           'Freq_1.98E+04'])
ds

我使用 new_ds = ds.to_xarray() 将这个数据框转换成了 xarray,打印出来的结果是一个数据集,样子是这样的:

-- enter image description here

我想对这个数据集进行一些修改,具体来说,我想把 Epoch 作为索引,然后把坐标改成 Epoch 和频率。最后,把维度改成 Epoch 和频率(分别对应 x 轴和 y 轴)。我该怎么做呢?

1 个回答

0

你只需要把时间戳(epoch)设置为索引

import pandas as pd
import xarray as xr

ds = pd.DataFrame([
    ('2020-312T00:00:00.746', 2.466000e-15, 2.330500e-15, 2.949800e-15, 7.497400e-15, 3.682900e-15, 6.375300e-15),
    ('2020-312T00:00:01.746', 1.406300e-14, 1.319700e-14, 6.588400e-15, 5.245300e-15, 4.462600e-15, 6.375300e-15),
    ('2020-312T00:00:02.746', 9.389400e-15, 7.542200e-15, 5.433000e-15, 2.355100e-15, 7.388700e-15, 3.852900e-15),
    ('2020-312T00:00:03.746', 5.252700e-15, 4.338100e-15, 6.588400e-15, 5.245300e-15, 2.934300e-15, 6.375300e-15),
    ('2020-312T00:00:04.746', 5.252700e-15, 9.345600e-15, 3.340000e-15, 5.245300e-15, 8.766700e-15, 4.640600e-15)
], columns=['Epoch', 'Freq_1.12E+04', 'Freq_1.25E+04', 'Freq_1.41E+04', 'Freq_1.58E+04', 'Freq_1.77E+04', 'Freq_1.98E+04'])

ds = ds.set_index('Epoch')

xds = ds.to_xarray()

xds

这样就能得到

enter image description here

撰写回答