我在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) 我正在使用 Elsevier API 通过scopus-api 模块访问来自 Scopus 的引用计数数据(但很乐意使用 Elsevier 的elsapy 模块)。我可以访问我需要的数据,但每周可以发出的请求数量有限制。
如何获得一周的剩余请求数?
感谢所有帮助。
在删除两个特定列中重复的行时,是否可以根据第三列优先保留重复行之一?
考虑以下示例:
# 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) 我正在尝试使用正则表达式来识别大熊猫数据帧的特定行。具体来说,我打算将论文的 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)