gpt4 book ai didi

python - 在多索引数据集中按名称引用 pandas 索引

转载 作者:行者123 更新时间:2023-12-01 06:54:59 25 4
gpt4 key购买 nike

我有一个从 xarray 数据集转换而来的 pandas 数据框,它具有三个索引。

                                         XTIME  windspeed  direction  \
Time lat lon
0 -36.457836 146.200153 2017-10-31 01:00:00 6.299611 0.853234
146.208487 2017-10-31 01:00:00 6.479416 0.794886
146.216820 2017-10-31 01:00:00 6.661458 0.736131
146.225153 2017-10-31 01:00:00 6.511693 0.702716
146.233487 2017-10-31 01:00:00 6.218874 0.725511
... ... ... ...
463 -37.599502 147.958486 2017-11-19 08:00:00 2.083699 -1.161645
147.966819 2017-11-19 08:00:00 2.202758 -1.171001
147.975153 2017-11-19 08:00:00 2.367172 -1.163191
147.983486 2017-11-19 08:00:00 2.580872 -1.099003
147.991819 2017-11-19 08:00:00 2.817507 -1.016175

我希望能够引用纬度和经度索引并提取存储在那里的数字。但是,我不知道如何按名称引用它们。

提出了类似的问题here但接受的答案只是让OP在索引时保留该列的副本,这对我的情况没有帮助。

最佳答案

我认为最简单的是将 MultiIndex 通过 DataFrame.reset_index 转换为列,选择后获取系列:

df = df.reset_index()
print (df)
Time lat lon XTIME windspeed direction
0 0 -36.457836 146.200153 2017-10-31 01:00:00 6.299611 0.853234
1 0 -36.457836 146.208487 2017-10-31 01:00:00 6.479416 0.794886
2 0 -36.457836 146.216820 2017-10-31 01:00:00 6.661458 0.736131
3 0 -36.457836 146.225153 2017-10-31 01:00:00 6.511693 0.702716
4 0 -36.457836 146.233487 2017-10-31 01:00:00 6.218874 0.725511
5 463 -37.599502 147.958486 2017-11-19 08:00:00 2.083699 -1.161645
6 463 -37.599502 147.966819 2017-11-19 08:00:00 2.202758 -1.171001
7 463 -37.599502 147.975153 2017-11-19 08:00:00 2.367172 -1.163191
8 463 -37.599502 147.983486 2017-11-19 08:00:00 2.580872 -1.099003
9 463 -37.599502 147.991819 2017-11-19 08:00:00 2.817507 -1.016175

time = df['Time']
lat = df['lat']
lon = df['lon']
print (lon)
0 146.200153
1 146.208487
2 146.216820
3 146.225153
4 146.233487
5 147.958486
6 147.966819
7 147.975153
8 147.983486
9 147.991819
Name: lon, dtype: float64

或者您可以通过Index.get_level_values选择MultiIndex中的每个级别- 选择获取索引后:

time = df.index.get_level_values('Time')
lat = df.index.get_level_values('lat')
lon = df.index.get_level_values('lon')

print (lon)
Float64Index([ 146.200153, 146.20848700000002, 146.21681999999998,
146.225153, 146.23348700000003, 147.95848600000002,
147.966819, 147.975153, 147.983486,
147.991819],
dtype='float64', name='lon')

关于python - 在多索引数据集中按名称引用 pandas 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58850237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com