我有一个包含大量列的大型数据框.
对于数据帧中的每一行/索引,我做一些操作,读取一些ancilliary ata等,并获得一个新值.有没有办法将新值添加到正确行/索引的新列中?
我可以使用.assign添加一个新列但是因为我循环遍历行并且只生成一次添加一个值的数据(生成它非常复杂).当它生成时,我想立即将它添加到数据帧,而不是等到我生成整个系列.
这不起作用,并给出一个关键错误:
df['new_column_name'].iloc[this_row]=value
Run Code Online (Sandbox Code Playgroud)
我需要首先初始化列还是什么?
我认为这是一个非常愚蠢的问题,但我找不到答案。
我在 github 上有一个私人仓库。如果我创建一个新版本并“发布”它,是否有任何内容会公开?
我想将其全部保留为私有/内部,并且我不清楚“发布”是否意味着以任何方式公开发布。
我已经阅读了很多关于iloc vs loc的讨论,我理解差异,但我不明白的是它们之间的区别是什么:
indexed_data['var'][0:10]
Run Code Online (Sandbox Code Playgroud)
VS
indexed_data['var'].iloc[0:10]
Run Code Online (Sandbox Code Playgroud)
这些似乎是相同的东西,并提供相同的输出.
我错过了什么吗?谢谢!
我希望有人能指出我正确的方向。python datavis 领域现在已经变得巨大,并且有太多的选择,我有点不知道实现这一目标的最佳方法是什么。
我有一个 xarray 数据集(但它很容易是一个 Pandas 数据框或一个 numpy 数组列表)。
我有 3 列,A、B 和 C。它们包含 40 个数据点。
我想绘制 A vs B + scale*C 的散点图,其中比例是从交互式滑块确定的。
更高级的版本会有一个下拉列表,您可以在其中选择一组不同的 3 列,但稍后我会担心这一点。
对所有这些的警告是,我希望它在线并且可以交互以供其他人使用。
似乎有很多选择:
任何想法或建议将不胜感激。
我正在使用 xarray 数据集创建散点图
scat = ds.hvplot.scatter(x='a', y='b', groupby='c', height=900, width=900)
Run Code Online (Sandbox Code Playgroud)
如何向该图中添加回归线?
我也使用它来设置图中的一些属性,我可以在钩子函数中添加斜率,但我无法弄清楚如何从 plot.state 访问 x 和 y。这也可能是完全错误的做法。
scat = scat.opts(hooks=[hook])
def hook(plot, element):
print('plot.state: ', plot.state)
print('plot.handles: ', sorted(plot.handles.keys()))
par = np.polyfit(x, y, 1, full=True)
gradient=par[0][0]
y_intercept=par[0][1]
slope = Slope(gradient=gradient, y_intercept=y_intercept,
line_color='orange', line_dash='dashed', line_width=3.5)
plot.state.add_layout(slope)
scat = scat.opts(hooks=[hook])
Run Code Online (Sandbox Code Playgroud) 我正在使用 plotly express 时间线来生成甘特图,如下所示:https ://medium.com/dev-genius/gantt-charts-in-python-with-plotly-e7213f932f1e
它会自动设置 x 轴以使用日期,但我实际上只想使用整数(即项目启动 +1、项目启动 +6 等)。
有没有办法让时间线图不使用 xaxis 的日期?
如果我尝试使用整数,它会将它们视为毫秒。
我可以像这样向轴添加表格:
from matplotlib.table import table
stats_table = table(ax5, cellText=cell_text,
rowLabels=rows,
colLabels=cols,
bbox = [0.1, 0, 0.9, 0.8])
Run Code Online (Sandbox Code Playgroud)
我可以使用 bbox 来指定它的位置,但是我如何设置 bbox 的样式?
在我见过的其他示例中,它使用类似的东西来设置 bbox 的样式
bbox_props = dict(boxstyle="rarrow,pad=0.3", fc="cyan", ec="b", lw=2)
Run Code Online (Sandbox Code Playgroud)
但是如何在定义 bbox 位置的同时使用它呢?
我不知道如何表达这个问题,但我希望这个例子可以解释它。
我每天都有一系列 netcdf 文件的数据。每个文件都包含数据的时间维度,作为 30 天的预测。
如果我使用以下方法读取一年的数据:
data=xarray.open_mfdataset(files, concat_dim='None', autoclose='True')
Run Code Online (Sandbox Code Playgroud)
然后我得到:
Dimensions: (None: 365, lat: 110, lon: 100, time: 395)
Run Code Online (Sandbox Code Playgroud)
我只对每个文件的 time = 0 时的值感兴趣,即对于 file = 0,我想要 time = 0 对于 file = 360,我想要 time = 360 等。
基本上我认为我想做的只是从每个文件中读取时间组件的第一个元素,但我似乎不知道如何使用 open_mfdataset 来做到这一点。
即使在读取整个内容后删除不需要的值也可以,但由于 open_mfdataset 连接数据集的方式,我似乎也无法弄清楚这一点。
我正在使用 xarray 读取多个气候模型数据,自从升级 python 以来,我的代码现在已停止工作。
它失败了,因为某些模型数据具有不同的日历:
In [15]: ds.coords['time'].values[0]
Out[15]: cftime.DatetimeNoLeap(1861, 1, 16, 12, 0, 0, 0, 0, 16)
Run Code Online (Sandbox Code Playgroud)
这意味着 pandas.to_datetime() 失败:
pd.to_datetime(ds.coords['time'].values[0])
TypeError: <type 'cftime._cftime.DatetimeNoLeap'> is not convertible to datetime
Run Code Online (Sandbox Code Playgroud)
有没有解决的办法?