小编Lor*_*cán的帖子

通过R中的ROracle从Oracle查询获取正确的日期时间

我在R中使用ROracle访问Oracle数据库。

我注意到,大概是从夏季更改以来,任何DATE(日期时间)Oracle列现在都被错误地转换了(R中的小时数比Oracle DB中的小时数少)。

从小插图的第12页(我几乎不了解),它看起来像ROracle和R交换日期时间为自UTC 1970年1月1日以来的秒数,并且R随后针对本地时区进行了调整。

这是我的工作

    drv <- dbDriver("Oracle");
    con <- dbConnect(drv, username = Login, password = Pwd, dbname = DB, prefetch=TRUE, bulk_read=1e6);

    test.query <- "SELECT * FROM MYTABLE WHERE ( A > to_date('2008-03-03 12:30:00', 'YYYY-MM-DD HH24:MI:SS') AND A < to_date('2008-03-03 12:40:00','YYYY-MM-DD HH24:MI:SS')  AND [other stuff])"

    test <- dbGetQuery(con, test.query);

    head(test[,c("A","B","C")])
    #                    A                   B                   C
    #1 2008-03-03 11:30:38 2008-03-02 23:00:00 2008-03-02 23:00:00 #HERE IT SHOULD BE +1 HOUR
    #2 2008-03-03 11:30:38 2008-03-02 …
Run Code Online (Sandbox Code Playgroud)

oracle timezone r posixct

7
推荐指数
1
解决办法
1900
查看次数

Scopus API - 本周剩余的请求数

我正在使用 Elsevier API 通过scopus-api 模块访问来自 Scopus 的引用计数数据(但很乐意使用 Elsevier 的elsapy 模块)。我可以访问我需要的数据,但每周可以发出的请求数量有限制。

如何获得一周的剩余请求数?

感谢所有帮助。

python scopus

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

优先删除数据帧中的部分重复项

在删除两个特定列中重复的行时,是否可以根据第三列优先保留重复行之一?

考虑以下示例:

# Example dataframe.
df <- data.frame(col.1 = c(1, 1, 1, 2, 2, 2, 3),
                 col.2 = c(1, 1, 1, 2, 2, 2, 2),
                 col.3 = c('b', 'c', 'a', 'b', 'a', 'b', 'c'))
# Output
col.1 col.2 col.3
    1     1     b
    1     1     c
    1     1     a
    2     2     b
    2     2     a
    2     2     b
    3     2     c
Run Code Online (Sandbox Code Playgroud)

我想删除在col.1和中都col.2重复的行,同时始终保留具有的重复行col.3 == 'a',否则对保留的重复行没有偏好。在此示例的情况下,结果数据帧将如下所示:

# Output.
col.1 col.2 col.3
    1     1     a
    2     2     a …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

使用正则表达式获取 pandas 数据帧列中部分匹配的行索引

我正在尝试使用正则表达式来识别大熊猫数据帧的特定行。具体来说,我打算将论文的 DOI 与包含 DOI 号的 xml ID 进行匹配。

# An example of the dataframe and a test doi:

                                    ScID.xml     journal  year    topic1
0    0009-3570(2017)050[0199:omfg]2.3.co.xml  Journal_1   2017  0.000007
1  0001-3568(2001)750[0199:smdhmf]2.3.co.xml  Journal_3   2001  0.000648
2  0002-3568(2004)450[0199:gissaf]2.3.co.xml  Journal_1   2004  0.000003
3  0003-3568(2011)150[0299:easayy]2.3.co.xml  Journal_1   2011  0.000003

# A dummy doi:

test_doi = '0002-3568(2004)450'
Run Code Online (Sandbox Code Playgroud)

在此示例中,我希望能够通过在 ScID.xml 列中查找部分匹配来返回第三行 (2) 的索引。DOI 并不总是位于 ScID.xml 字符串的开头。

我搜索了该网站并应用了针对类似场景描述的方法。

包括:

df.iloc[:,0].apply(lambda x: x.contains(test_doi)).values.nonzero()
Run Code Online (Sandbox Code Playgroud)

这将返回:

AttributeError: 'str' object has no attribute 'contains'
Run Code Online (Sandbox Code Playgroud)

和:

df.filter(regex=test_doi)
Run Code Online (Sandbox Code Playgroud)

给出:

Empty DataFrame

Columns: []
Index: [0, 1, …
Run Code Online (Sandbox Code Playgroud)

python regex pandas

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

标签 统计

python ×2

r ×2

dataframe ×1

oracle ×1

pandas ×1

posixct ×1

regex ×1

scopus ×1

timezone ×1