小编Jon*_*n.H的帖子

计算Pandas Dataframe索引之间的时差

我试图在数据帧中添加一列deltaT,其中deltaT是连续行之间的时间差(如时间序列中的索引).

time                 value

2012-03-16 23:50:00      1
2012-03-16 23:56:00      2
2012-03-17 00:08:00      3
2012-03-17 00:10:00      4
2012-03-17 00:12:00      5
2012-03-17 00:20:00      6
2012-03-20 00:43:00      7
Run Code Online (Sandbox Code Playgroud)

期望的结果类似于以下(以分钟显示的deltaT单位):

time                 value  deltaT

2012-03-16 23:50:00      1       0
2012-03-16 23:56:00      2       6
2012-03-17 00:08:00      3      12
2012-03-17 00:10:00      4       2
2012-03-17 00:12:00      5       2
2012-03-17 00:20:00      6       8
2012-03-20 00:43:00      7      23
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

使用Java(Jackson)读取JSON中嵌套键的值

我是来自Python背景的新Java程序员.我有收集/返回的天气数据作为带有嵌套键的JSON,我不明白在这种情况下如何拉出值.我确定之前已经问过这个问题,但是我发誓我用Google搜索了很多内容,我似乎无法找到答案.现在我正在使用json-simple,但我尝试切换到Jackson,但仍然无法弄清楚如何做到这一点.由于Jackson/Gson似乎是最常用的库,我很乐意看到使用其中一个库的示例.下面是数据的示例,后面是我到目前为止编写的代码.

{
    "response": {
        "features": {
            "history": 1
        }
     },
    "history": {
        "date": {
            "pretty": "April 13, 2010",
            "year": "2010",
            "mon": "04",
            "mday": "13",
            "hour": "12",
            "min": "00",
            "tzname": "America/Los_Angeles"
        },
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

主功能

public class Tester {

    public static void main(String args[]) throws MalformedURLException, IOException, ParseException {
        WundergroundAPI wu =  new WundergroundAPI("*******60fedd095");

        JSONObject json = wu.historical("San_Francisco", "CA", "20100413");

        System.out.println(json.toString());
        System.out.println();
        //This only returns 1 level. Further .get() calls throw an exception
        System.out.println(json.get("history"));
    }
}
Run Code Online (Sandbox Code Playgroud)

函数'historical'调用另一个返回JSONObject的函数

public static JSONObject …
Run Code Online (Sandbox Code Playgroud)

java json jackson gson

28
推荐指数
2
解决办法
5万
查看次数

使用 Array<Map<String,String>> 列读取 Parquet 文件

我正在使用 Dask 读取 PySpark 生成的 Parquet 文件,其中一列是字典列表(即array<map<string,string>>')。df 的一个例子是:

import pandas as pd

df = pd.DataFrame.from_records([ 
    (1, [{'job_id': 1, 'started': '2019-07-04'}, {'job_id': 2, 'started': '2019-05-04'}], 100), 
    (5, [{'job_id': 3, 'started': '2015-06-04'}, {'job_id': 9, 'started': '2019-02-02'}], 540)], 
    columns=['uid', 'job_history', 'latency'] 
) 
Run Code Online (Sandbox Code Playgroud)

当使用 时engine='fastparquet,Dask 可以很好地读取所有其他列,但会None为具有复杂类型的列返回 s 列。当我设置时engine='pyarrow',出现以下异常:

ArrowNotImplementedError: lists with structs are not supported.
Run Code Online (Sandbox Code Playgroud)

许多谷歌搜索已经明确表明,现在并不真正支持读取带有嵌套数组的列,而且我不完全确定处理此问题的最佳方法是什么。我想我的选择是:

  • 一些如何告诉 dask/fastparquet 使用标准库解析列json。该模式很简单,如果可能的话就可以完成这项工作
  • 看看我是否可以重新运行生成输出的 Spark 作业并将其另存为其他内容,尽管这几乎不是一个可接受的解决方案,因为我的公司到处都使用镶木地板
  • 将映射的键转换为列,并使用 dtype 将数据分解为多个列,list并注意这些列中的数据通过索引相互关联/映射(例如,0这些键/列中的 idx 中的元素全部来自相同来源)。这会起作用,但坦率地说,让我心碎:(

我很想听听其他人如何克服这个限制。我的公司经常在其镶木地板中使用嵌套数组,因此我不想放弃使用 Dask。

python dask python-3.7 fastparquet pyarrow

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

为什么在类方法中什么都不返回

我最近开始在一家从事Python工作的公司工作,在他们的代码中,他们有一个类,它定义了一些什么都不做的函数,什么都不返回.代码几乎完全正确

...
...
def foo(self):
    return
Run Code Online (Sandbox Code Playgroud)

我真的很困惑为什么有人会这样做,我的经理不在我身边.为了儿童类的抽象,人们会这样做吗?这个函数将来会被覆盖的信号?我特别关注的类继承自一个不包含任何返回任何函数的基类,所以我知道至少这个类没有做某种奇怪的函数重写.

python

0
推荐指数
1
解决办法
346
查看次数

标签 统计

python ×3

dask ×1

dataframe ×1

fastparquet ×1

gson ×1

jackson ×1

java ×1

json ×1

pandas ×1

pyarrow ×1

python-3.7 ×1