我已经编写了一些代码来使用pandas中的数据透视表来计算加权平均值.但是,我不确定如何添加执行加权平均的实际列(添加新列,其中每行包含'cumulative'/'COUNT'的值).
数据看起来像这样:
VALUE COUNT GRID agb
1 43 1476 1051
2 212 1476 2983
5 7 1477 890
4 1361 1477 2310
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
# Read input data
lup_df = pandas.DataFrame.from_csv(o_dir+LUP+'.csv',index_col=False)
# Insert a new column with area * variable
lup_df['cumulative'] = lup_df['COUNT']*lup_df['agb']
# Create and output pivot table
lup_pvt = pandas.pivot_table(lup_df, 'agb', rows=['GRID'])
# TODO: Add a new column where each row contains value of 'cumulative'/'COUNT'
lup_pvt.to_csv(o_dir+PIVOT+'.csv',index=True,header=True,sep=',')
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
是否有netcdf操作符(来自nco或任何python netcdf库)可用于覆盖netcdf文件中的特定单元格?
我想更改包含全球气候数据的netcdf文件中的小区域的值.谢谢!
我正在绘制netCDF文件:https: //goo.gl/QyUI4J
但是,我希望海洋是白色的.更好的是,我希望能够指定海洋出现的颜色.如何更改下面的代码来做到这一点?现在,问题是海洋正在数据规模上绘制.(请注意,netCDF文件很大~3.5 GB).
import pdb, os, glob, netCDF4, numpy
from matplotlib import pyplot as plt
from mpl_toolkits.basemap import Basemap
def plot_map(path_nc, var_name):
"""
Plot var_name variable from netCDF file
:param path_nc: Name of netCDF file
:param var_name: Name of variable in netCDF file to plot on map
:return: Nothing, side-effect: plot an image
"""
nc = netCDF4.Dataset(path_nc, 'r', format='NETCDF4')
tmax = nc.variables['time'][:]
m = Basemap(projection='robin',resolution='c',lat_0=0,lon_0=0)
m.drawcoastlines()
m.drawcountries()
# find x,y of map projection grid.
lons, lats …Run Code Online (Sandbox Code Playgroud) 如何更改色彩映射颜色方案以在点之外显示相同的颜色.
例如,这是我的色彩映射:
import palettable
cmap = palettable.colorbrewer.sequential.YlGn_9.mpl_colormap
Run Code Online (Sandbox Code Playgroud)
如果我使用此色彩图绘制0到100的范围,我如何修改色彩图,使其超过50,它会变为红色?
有没有办法获得XGRegressor预测的置信区间?像scikit随机森林的forest-ci包?我想要一个python的解决方案
[1, 1, 1, 0, 0, 0, 1, 1, 0, 0]
Run Code Online (Sandbox Code Playgroud)
我有一个像上面一样由 0 和 1 组成的 NumPy 数组。如何添加所有连续的 1,如下所示?每当我遇到 0 时,我都会重置。
[1, 2, 3, 0, 0, 0, 1, 2, 0, 0]
Run Code Online (Sandbox Code Playgroud)
我可以使用 for 循环来做到这一点,但是是否有使用 NumPy 的矢量化解决方案?
与 Markdown 相关:引用另一个文件中的部分
\n我有两个 Markdown 文件:
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parent.md\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 content/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 child.md\nRun Code Online (Sandbox Code Playgroud)\n在parent.md:
# Main section\n## sub-section\nRun Code Online (Sandbox Code Playgroud)\n我想引用##sub-section来自child.md. 我怎么做?请注意,它child.md位于子文件夹中。
请注意,我正在使用 Jupyter book 来处理 markdown。
\n我有一个值,比如 2016 和一个排序的 numpy 数组:[2005, 2010, 2015, 2020, 2025, 2030]。在数组中查找绑定 2016 的 2 个值的 Pythonic 方法是什么?在本例中,答案将是一个数组 [2015, 2020]。
不知道除了循环之外如何做到这一点,但希望有一个更基于 numpy 的解决方案
- 编辑:
你可以假设你永远不会得到数组中的值,我对此进行了预过滤
有什么方法可以netCDF使用向文件添加全局属性xarray吗?当我做类似的事情时hndl_nc['global_attribute'] = 25,它只是添加了一个新变量。
我正在尝试根据日期将数据框分成两个。这已经解决了这里的一个相关问题:Split dataframe into two based on date
我的数据框如下所示:
abcde col_b
2008-04-10 0.041913 0.227050
2008-04-11 0.041372 0.228116
2008-04-12 0.040835 0.229199
2008-04-13 0.040300 0.230301
2008-04-14 0.039770 0.231421
Run Code Online (Sandbox Code Playgroud)
我如何根据日期拆分它(比如 2008-04-12 之前和之后)?当我尝试这个时:
df.loc[pd.to_datetime(df.index) <= split_date]
Run Code Online (Sandbox Code Playgroud)
这里split_date是datetime.date(2008-04-12),我得到这个错误:
*** TypeError: <class 'datetime.date'> type object 2008-04-12
Run Code Online (Sandbox Code Playgroud) python ×9
netcdf ×2
numpy ×2
pandas ×2
cdo-climate ×1
cumsum ×1
datetime ×1
jupyterbook ×1
markdown ×1
matplotlib ×1
nco ×1
pivot-table ×1
plot ×1
seaborn ×1
xgboost ×1