小编Tom*_*101的帖子

Groupby与TimeGrouper'向后'

我有一个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等我能想到的.

我怎样才能做到这一点?

python numpy time-series pandas

5
推荐指数
1
解决办法
411
查看次数

Spark数据帧:根据另一列的值提取列

我有一个带有连接价格表的交易的数据框:

+----------+----------+------+-------+-------+
|   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,无处可去.

我想有一些优雅的解决方案吗?有人可以帮忙吗?

scala dataframe apache-spark apache-spark-sql

3
推荐指数
1
解决办法
1万
查看次数

获取 xarray 数据集的非 nan 值的坐标

我有这个包含全球气温的样本数据集,更重要的是,一个 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)

仅绘制土地面积 dry_areas 看起来像这样 …

numpy python-xarray

3
推荐指数
1
解决办法
4015
查看次数

如何对 xarray Dataset/DataArray 的索引进行排序?

我正在DataArray沿着时间维度从多个切片创建一个,并'index must be monotonic for resampling'在尝试重新采样时偶然发现了错误,我猜我的时间索引没有排序。我没有注意它们的顺序concat()

# TODO: sort instead of raising an error

将在引发错误的代码中找到。

我的问题:我将如何DataArray在 a 中对我的s的索引进行排序DataSet?我找不到类似的东西sort_index()

python pandas python-xarray

2
推荐指数
2
解决办法
2271
查看次数