将 Panda Column dtype: float64 拆分成几列
Split Panda Column dtype: float64 into several columns
目标: 创建一个可以上传到 postgresql 的熊猫数据框(我没有添加 pgsql 步骤,因为它与我的问题无关)
背景:
我目前正在使用 .nc 文件,这是信息:
<type 'netCDF4._netCDF4.Dataset'>
root group (NETCDF4 data model, file format HDF5):
references: Beck, H. E., van Dijk, A. I. J. M., Levizzani, V., Schellekens, J., Miralles, D. G., Martens, B., and de Roo, A.: MSWEP: 3-hourly 0.25 global gridded precipitation (1979-2015) by merging gauge, satellite, and reanalysis data, Hydrol. Earth Syst. Sci. Discuss., doi:10.5194/hess-2016-236
history: Mon May 15 09:44:10 2017: ncatted -O -a standard_name,Rainf,o,c,rainfall_flux ./3hourly_e2o_netcdf_convention/Rainf_MSWEP_025_197901.nc
NCO: "4.6.2"
dimensions(sizes): lon(1440), lat(720), time(249)
variables(dimensions): float32 lat(lat), float32 lon(lon), float32 time(time), float32 Rainf(time,lat,lon)
groups:
我已经使用 xarray 创建了一个 pandas 数据框,我的代码是:
ds = xr.open_dataset(r'.../Rainf_daily_MSWEP_025_197901.nc')
df = ds.to_dataframe()
test = df.iloc[2:3] # slice the dataframe so that I can see the structure of the column
print test
输出是这样的:
Rainf
lat lon time
-89.875 -179.875 1979-01-03 6.705523e-08
如您所见,这是一个包含一列的数据框,此时我想要一个包含 4 列纬度、经度、时间、Rainf 的数据框。我已尝试 str.split、连接方法并添加到列表,但仍然无法正确设置列。我也尝试过使用字符串方法,但无法更改列的值。
这些是我试过的一些线路
test['Rainf'].astype(str)
test['Rainf'].str.split(' ', 1, expand=True)
我只是在寻求一些指导,所以欢迎任何想法。谢谢。
你可以reset_index
:
In [11]: df
Out[11]:
Rainf
lat lon time
-89.875 -179.875 1979-01-03 6.705523e-08
In [12]: df.reset_index()
Out[12]:
lat lon time Rainf
0 -89.875 -179.875 1979-01-03 6.705523e-08
目标: 创建一个可以上传到 postgresql 的熊猫数据框(我没有添加 pgsql 步骤,因为它与我的问题无关)
背景: 我目前正在使用 .nc 文件,这是信息:
<type 'netCDF4._netCDF4.Dataset'>
root group (NETCDF4 data model, file format HDF5):
references: Beck, H. E., van Dijk, A. I. J. M., Levizzani, V., Schellekens, J., Miralles, D. G., Martens, B., and de Roo, A.: MSWEP: 3-hourly 0.25 global gridded precipitation (1979-2015) by merging gauge, satellite, and reanalysis data, Hydrol. Earth Syst. Sci. Discuss., doi:10.5194/hess-2016-236
history: Mon May 15 09:44:10 2017: ncatted -O -a standard_name,Rainf,o,c,rainfall_flux ./3hourly_e2o_netcdf_convention/Rainf_MSWEP_025_197901.nc
NCO: "4.6.2"
dimensions(sizes): lon(1440), lat(720), time(249)
variables(dimensions): float32 lat(lat), float32 lon(lon), float32 time(time), float32 Rainf(time,lat,lon)
groups:
我已经使用 xarray 创建了一个 pandas 数据框,我的代码是:
ds = xr.open_dataset(r'.../Rainf_daily_MSWEP_025_197901.nc')
df = ds.to_dataframe()
test = df.iloc[2:3] # slice the dataframe so that I can see the structure of the column
print test
输出是这样的:
Rainf
lat lon time
-89.875 -179.875 1979-01-03 6.705523e-08
如您所见,这是一个包含一列的数据框,此时我想要一个包含 4 列纬度、经度、时间、Rainf 的数据框。我已尝试 str.split、连接方法并添加到列表,但仍然无法正确设置列。我也尝试过使用字符串方法,但无法更改列的值。
这些是我试过的一些线路
test['Rainf'].astype(str)
test['Rainf'].str.split(' ', 1, expand=True)
我只是在寻求一些指导,所以欢迎任何想法。谢谢。
你可以reset_index
:
In [11]: df
Out[11]:
Rainf
lat lon time
-89.875 -179.875 1979-01-03 6.705523e-08
In [12]: df.reset_index()
Out[12]:
lat lon time Rainf
0 -89.875 -179.875 1979-01-03 6.705523e-08