我有一个DataFrame时间序列:
rng = pd.date_range('2016-06-01', periods=24*7, freq='H')
ones = pd.Series([1]*24*7, rng)
rdf = pd.DataFrame({'a': ones})
Run Code Online (Sandbox Code Playgroud)
最后一个条目是2016-06-07 23:00:00.我现在想把这个分组,比如两天,基本上是这样的:
rdf.groupby(pd.TimeGrouper('2D')).sum()
Run Code Online (Sandbox Code Playgroud)
但是,我想从最后一个数据点向后分组,所以不要得到这个结果:
a
2016-06-01 48
2016-06-03 48
2016-06-05 48
2016-06-07 24
Run Code Online (Sandbox Code Playgroud)
我更期待这个:
a
2016-06-01 24
2016-06-03 48
2016-06-05 48
2016-06-07 48
Run Code Online (Sandbox Code Playgroud)
分组时'3D':
a
2016-06-01 24
2016-06-04 72
2016-06-07 72
Run Code Online (Sandbox Code Playgroud)
分组时的预期结果'4D'是:
a
2016-06-03 72
2016-06-07 96
Run Code Online (Sandbox Code Playgroud)
我不能用的每个组合得到这个closed,label等我能想到的.
我怎样才能做到这一点?
我有一个带有连接价格表的交易的数据框:
+----------+----------+------+-------+-------+
| paid | currency | EUR | USD | GBP |
+----------+----------+------+-------+-------+
| 49.5 | EUR | 99 | 79 | 69 |
+----------+----------+------+-------+-------+
Run Code Online (Sandbox Code Playgroud)
客户已支付49.5欧元,如"货币"栏中所示.我现在想要将付费价格与价格表中的价格进行比较.
因此,我需要根据"货币"的值访问正确的列,如下所示:
df.withColumn("saved", df.col(df.col($"currency")) - df.col("paid"))
Run Code Online (Sandbox Code Playgroud)
我希望会成为
df.withColumn("saved", df.col("EUR") - df.col("paid"))
Run Code Online (Sandbox Code Playgroud)
然而,这失败了.我尝试了所有可以成像的东西,包括UDF,无处可去.
我想有一些优雅的解决方案吗?有人可以帮忙吗?
我有这个包含全球气温的样本数据集,更重要的是,一个 mask land,标记陆地/非水域区域。
<xarray.Dataset>
Dimensions: (lat: 55, lon: 143, time: 5)
Coordinates:
* time (time) datetime64[ns] 2016-01-01 2016-01-02 2016-01-03 ...
* lat (lat) float64 -52.5 -50.0 -47.5 -45.0 -42.5 -40.0 -37.5 -35.0 ...
* lon (lon) float64 -177.5 -175.0 -172.5 -170.0 -167.5 -165.0 -162.5 ...
land (lat, lon) bool False False False False False False False False ...
Data variables:
airt (time, lat, lon) float64 7.952 7.61 7.389 7.267 7.124 6.989 ...
Run Code Online (Sandbox Code Playgroud)
我现在可以掩盖海洋并绘制它
dry_areas = ds.where(ds.land)
dry_areas.airt.plot()
Run Code Online (Sandbox Code Playgroud)
我正在DataArray沿着时间维度从多个切片创建一个,并'index must be monotonic for resampling'在尝试重新采样时偶然发现了错误,我猜我的时间索引没有排序。我没有注意它们的顺序concat()。
# TODO: sort instead of raising an error
将在引发错误的代码中找到。
我的问题:我将如何DataArray在 a 中对我的s的索引进行排序DataSet?我找不到类似的东西sort_index()。