如何在Python中将DataFrame的行列索引设置为纬度/经度,并创建包含纬度、经度和值的xarray数据集?

-3 投票
3 回答
50 浏览
提问于 2025-04-14 15:48

我有一个数据表(dataframe)。我想用纬度和经度来作为行和列的索引。

longitude=np.arange(-180,180,0.05)
latitude=np.arange(-90,90,0.05)

我想把这个纬度(lat)和经度(lon)设置为数据表的行和列索引。这里是数据表的图片。虽然这里只显示了“nan”,但有些点是有实际值的]1

3 个回答

0

只需要重新指定一下行的索引和列的名称就可以了:

df.columns = longitude
df.index = latitude

结果:

       -180.00 -179.95 -179.90 -179.85  ...  179.80  179.85  179.90  179.95
-90.00     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.95     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.90     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.85     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.80     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
       ...     ...     ...     ...  ...     ...     ...     ...     ...
 89.75     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.80     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.85     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.90     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.95     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
0
import pandas as pd
import numpy as np

# Your provided ranges
longitude = np.arange(-180, 180, 0.05)
latitude = np.arange(-90, 90, 0.05)

# Example: Creating an empty dataframe with latitude and longitude as multi-index
# This assumes you want every possible combination of latitude and longitude as an index
index = pd.MultiIndex.from_product([latitude, longitude], names=["Latitude", "Longitude"])
df = pd.DataFrame(index=index)

# Now, df is ready to be populated with your data.
# Each row corresponds to a unique combination of latitude and longitude.

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

-1

你的意图不是很明确。不过,也许你想要的是:

df = pd.DataFrame(columns= longitude, index = latitude)

创建这个数据框(DF):

       -180.00 -179.95 -179.90 -179.85  ...  179.80  179.85  179.90  179.95
-90.00     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.95     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.90     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.85     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
-89.80     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
...        ...     ...     ...     ...  ...     ...     ...     ...     ...
 89.75     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.80     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.85     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.90     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN
 89.95     NaN     NaN     NaN     NaN  ...     NaN     NaN     NaN     NaN

[3600 rows x 7200 columns]

撰写回答