作为我的数据集的一部分,其中一列是一系列24位数字.
例:
bigonumber <- 429382748394831049284934
Run Code Online (Sandbox Code Playgroud)
当我导入它使用任一data.table::fread或read.csv,它显示为在指数格式数字(EG:4.293827e + 23).
options(digits=...) 由于该数字超过22位,因此无效.
当我做
as.character(bigonumber)
Run Code Online (Sandbox Code Playgroud)
我得到的是"4.29382748394831e + 23"
有没有办法bigonumber转换为字符串并将所有数字显示为字符?我不需要对它进行任何数学计算,但我确实需要搜索它并dplyr加入它.
导入后我需要这个,因为列号因月而异.
(是的,在完美的世界中,我的上游数据提供者会使用哈希而不是长数和静态列数,每个月都保持相同,但我不能指示它们.)
我来自 R,但由于各种原因需要在 Python 中执行此操作。这很可能是我的 Python 的基本 PEBKAC 问题,而不是 Pandas、PyODBC 或其他任何东西。
请多多包涵。
我当前的 Python 3 代码:
import pandas as pd
import pyodbc
cnxn = pyodbc.connect(DSN="databasename", uid = "username", pwd = "password")
querystring = 'select order_number, creation_date from table_name where order_number = ?'
orders = ['1234',
'2345',
'3456',
'5678']
for i in orders:
print(pd.read_sql(querystring, cnxn, params = [i]))
Run Code Online (Sandbox Code Playgroud)
我需要的是一个列名为“order_number”和“creation_date”的数据框。
抱歉截屏,无法在此处获取格式。
阅读dataframe.append page 后,我尝试了这个:
df = pd.DataFrame()
for i in orders:
df.append(pd.read_sql(querystring, cnxn, params = [i]))
Run Code Online (Sandbox Code Playgroud)
这似乎运行良好(无论如何都没有抛出错误)。
但是当我尝试输出 df 时,我得到 …
我正试图用Rvest从$ JOB的内部网页上刮掉一张桌子.我已经使用这里列出的方法来获取xpath等.
我的代码非常简单:
library(httr)
library(rvest)
un = "username"; pw = "password"
thexpath <- "//*[@id="theFormOnThePage"]/fieldset/table"
url1 <- "https://biglonghairyURL.do?blah=yadda"
stuff1 <- read_html(url1, authenticate(un, pw))
Run Code Online (Sandbox Code Playgroud)
这给我一个错误:"对等证书无法使用给定的CA证书进行身份验证."
撇开不向上到datedness证书的,我已经看到,它可能使用HTTR避免SSL验证使用set_config(config(ssl_verifypeer = 0L)).
如果我使用来自httr的GET(url1),这只会很好用,但重点是使用rvest自动抓取表格.
看看Rvest和httr的PDF ,似乎Rvest调用httr传递curl命令,而在httr中,你可以使用config().
那么,要完成三段论,我怎么能(或者甚至可能?)直接通过rvest :: read_html传递ssl_verifypeer = 0L?
我尝试了很多变化:
stuff1 <- read_html(url1, authenticate(un, pw), ssl_verifypeer = 0L))
stuff1 <- read_html(url1, authenticate(un, pw), config(ssl_verifypeer = 0L)))
stuff1 <- with_config(config = config(ssl_verifypeer = 0L), read_html(url1, authenticate(un, pw)))
Run Code Online (Sandbox Code Playgroud)
并且所有这些都抛出相同的错误"对等证书无法使用给定的CA证书进行身份验证".
希望这是可能的,我只是没有把正确的语法放在一起?
有人建议使用RSelenium,但由于这是在受保护的VM中,安装java和/或新软件包需要采取国会行为(以及VP签收),这将是我的最后手段.
我非常感谢任何有关这方面的建议.
我正在使用 PyODBC 通过名为 cnxn 的连接连接到 Oracle。
我有一个唯一标识符列表: list1 = [1234, 2345, 3456, 4567]
我也有一个疑问:
query1 = """
select * from tablename where unique_id = ?
""'
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用这个标识符列表来创建一个熊猫数据框。
作为测试,我这样做了:
testid = "1234" (since Oracle wants a string as that id not an integer)
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时:
pd.read_sql(query1, cnxn, params = testid)
Run Code Online (Sandbox Code Playgroud)
我得到“sql 包含 1 个参数标记,但提供了 4 个。”
最终,我希望能够做这样的事情:
for i in list1:
newdataframe.append(pd.read_sql(query1, cnxn, params = i))
Run Code Online (Sandbox Code Playgroud)
并让它吐出一个数据框。
我已经阅读了 PyODBC 上的文档,看起来它指定了 ? 作为参数。我也看过这个问题,它很相似,但我需要能够将结果输入到 Pandas 数据框中以进行进一步操作。
我想如果我能让 testid 工作,我就会走上正轨。
谢谢
我想做的是使用dplyr :: filter创建一些新的数据帧,以将数据从一个巨大的数据帧中分离为一堆较小的数据帧。
对于可重现的基本案例沼泽简单示例,我使用了以下示例:
filter(mtcars, cyl == 4)
Run Code Online (Sandbox Code Playgroud)
我知道我需要将其分配给它自己的数据框,因此我从以下内容开始:
paste("Cylinders:", x, sep = "") <- filter(mtcars, cyl == 4))
Run Code Online (Sandbox Code Playgroud)
那没有用-它给了我在这里发现的错误:赋值扩展为非语言对象
从那里,我发现了这一点:在R中使用粘贴创建变量名
(也是上述作者的大事)
这使我想到了这一点,它起作用了:
assign(paste("gears_cars_cylinders", 4, sep = "_"), filter(mtcars, cyl == 4)) %>%
group_by(gear) %>%
summarise(number_of_cars = n())
Run Code Online (Sandbox Code Playgroud)
通过“工作”,我的意思是我得到一个名为gears_cars_cylinders_4的数据框,其中包含来自
filter(mtcars, cyl == 4) %>%
group_by(gear) %>%
summarise(number_of_cars = n())
Run Code Online (Sandbox Code Playgroud)
但最终,我认为我需要将整个东西包装到一个函数中,并能够将其的柱面数提供给它mtcars$cyl。我在想什么plyr::ldply(mtcars$cyl, function_name)?
在我的实际数据中,我需要分解大约70个不同的类,以分成单独的数据框,然后放入DT::datatableShiny中的选项卡,这真是一团糟。无论如何。
当我尝试这个:
function_name <- function(x){
assign(paste("gears_cars_cylinders", x, sep = "_"), filter(mtcars, cyl == x)) %>%
group_by(gear) %>%
summarise(number_of_cars …Run Code Online (Sandbox Code Playgroud)