Pandas Dataframe 中不同列的多索引
Multiindex to different columns in Pandas Dataframe
在我通过 xray
读取 netCDF
文件后,我得到一个 pandas dataframe
和 multiindex
这样的:
temp
date lat lon
2012-01-01 54 10 206
11 207
55 10 210
11 214
2012-01-02 54 10 206
... ...
现在我想将 multiindex
转换成不同的列来进行统计操作。我想要这样的 pd dataframe
:
temp_54_10 temp_54_11 temp_55_10 temp_55_11
date
2012-01-01 206 207 210 214
2012-01-02 206 208 213 220
... ...
只有使用 pandas 或 xray
工具才有可能获得这样的 dataframe
,如果可以,我该怎么做?
提前致谢:)
p.s。我使用 python 3.5.0
、pandas 0.17.0
和 xray 0.6.1
尝试取消堆叠。这假设您的数据框被命名为 df
.
>>> df.unstack(['lat', 'lon'])
temp
lat 54 55
lon 10 11 10 11
date
2012-1-1 206 207 210 214
2012-1-2 206 NaN NaN NaN
如果您想加入 lat_lon 个值,您可以按如下方式进行:
df.reset_index(inplace=True)
df['lat_lon'] = ["{0}_{1}".format(lat, lon) for lat, lon in zip(df.lat, df.lon)]
>>> df.pivot(index='date', columns='lat_lon', values='temp')
lat_lon 54_10 54_11 55_10 55_11
date
2012-1-1 206 207 210 214
2012-1-2 206 NaN NaN NaN
在我通过 xray
读取 netCDF
文件后,我得到一个 pandas dataframe
和 multiindex
这样的:
temp
date lat lon
2012-01-01 54 10 206
11 207
55 10 210
11 214
2012-01-02 54 10 206
... ...
现在我想将 multiindex
转换成不同的列来进行统计操作。我想要这样的 pd dataframe
:
temp_54_10 temp_54_11 temp_55_10 temp_55_11
date
2012-01-01 206 207 210 214
2012-01-02 206 208 213 220
... ...
只有使用 pandas 或 xray
工具才有可能获得这样的 dataframe
,如果可以,我该怎么做?
提前致谢:)
p.s。我使用 python 3.5.0
、pandas 0.17.0
和 xray 0.6.1
尝试取消堆叠。这假设您的数据框被命名为 df
.
>>> df.unstack(['lat', 'lon'])
temp
lat 54 55
lon 10 11 10 11
date
2012-1-1 206 207 210 214
2012-1-2 206 NaN NaN NaN
如果您想加入 lat_lon 个值,您可以按如下方式进行:
df.reset_index(inplace=True)
df['lat_lon'] = ["{0}_{1}".format(lat, lon) for lat, lon in zip(df.lat, df.lon)]
>>> df.pivot(index='date', columns='lat_lon', values='temp')
lat_lon 54_10 54_11 55_10 55_11
date
2012-1-1 206 207 210 214
2012-1-2 206 NaN NaN NaN