我是Python的新手,但对R很熟悉。我正在尝试从雅虎获取股票价格数据。我成功地检索到了价格数据,并且能够创建一个数据帧。然而,雅虎也包括何时派发股息。现在,我想忽略红利,但在红利支付时,我无法过滤要删除的数据帧。此外,我还想更改Date列的格式,例如,从Mar 14, 2000更改为%Y-%m-%d。 来自网络抓取: Date Open Close
Dec 23, 2019 0.611 Dividend None
Dec 01, 2019 88.38 88.90 首先,我尝试在'None'上进行过滤,但
我使用Python语言中的PyMongo库在MongoDB中插入文档。pandas数据帧有37个字段和60k条记录(数据集链接:)。数据帧中的所有字段都已转换为str类型。我收到以下错误:
OverflowError: MongoDB can only handle up to 8-byte ints
当我使用for循环插入2500个文档的块时,错误仍然存在。
代码片段:
import pandas as pd
import pymongo
client = pymongo.MongoClient()
db = client['patenting_in_psi']
colle
我使用的数据集如下所示。它是一个视频字幕数据集,其字幕位于“Description”列下。 Video_ID Description
mv89psg6zh4 A bird is bathing in a sink.
mv89psg6zh4 A faucet is running while a bird stands.
mv89psg6zh4 A bird gets washed.
mv89psg6zh4 A parakeet is taking a shower in a sink.
mv89psg6zh4 The bird is taking a
对于像R中的lm()这样的函数,您将"data“参数传递给函数,通常是一个数据帧,然后R通过名称知道所有列,而不是引用它们。所以区别在于x=column而不是在时尚的x=df$column中引用。那么如何在我自己用户定义函数中使用相同的方法呢?
一个简单的例子:
library(tidyverse)
df <- tibble(x=1:100,y=x*(1+rnorm(n=100)))
test_corr <- function(x,y) {
cor(x,y) %>% return()
}
# Right now I would do this
test_co
我有一个函数,它在一个数据帧中使用两列:
def create_time(var, var1):
if var == "Helår":
y = var1+'Q4'
else:
if var == 'Halvår':
y = var1+'Q2'
else:
y = var1+'Q'+str(var)[0:1]
return y
现在我想遍历我的数据帧,使用函数创
我在R中有一个数据帧,它由NA和数字组成。它看起来是这样的:
a b
1 1 3
2 NA NA
3 3 2
4 NA 1
5 4 NA
我希望能够对此数据帧中的两列求和,这样NA+NA=NA就可以了,但是当NA与一个数字相加时,它应该被视为0。例如,上面数据帧中'a‘和'b’的总和应该如下所示:
sum
1 4
2 NA
3 5
4 1
5 4
有人知道我会怎么做吗?
假设我有这个数据框架A:
A = data.frame(first=c("a", "b","c", "d"), second=c(1, 2, 3, 4))
first second
1 a 1
2 b 2
3 c 3
4 d 4
我有一个数据框架B:
B = data.frame(first=c("x", "a", "c"), second=c(1, 4, 3))
first second
1
我经常在代码中使用循环。我被告知,与其使用循环,不如使用函数,并且可以使用R包purr中的函数重写循环。
作为示例,代码仅显示虹膜数据集中不同物种的计数,其中Sepal.Width <3
library(dplyr)
#dataframe to put the output in
sepaltable <- data.frame(Species=character(),
Total=numeric(),
stringsAsFactors=FALSE)
#list of species
我在一个数据帧中创建了15行,如下所示。我不能展示我的真实代码,但是create row函数涉及可以放在函数中的复杂计算。关于如何使用lapply、apply等并行创建所有15行,然后将所有行连接到一个数据帧中,您有什么想法吗?我认为使用lapply是可行的(例如,将所有行放在一个列表中,然后取消列表并连接,但不确定如何操作)。 for( i in 1:15 ) {
row <- create_row()
# row is essentially a dataframe with 1 row
rbind(my_df,row)
}
# Function to apply a rigid transformation matrix to a pair of coordinates
transformation <- function(r1, r2, r3, r4, x, y, z = 0, t = 1)
{
transformation_matrix <- matrix(c(r1, r2, r3, r4), nrow=1, ncol=4)
coordinate_matrix <- matrix(c(x, y, z, t), nrow=4, ncol=1)
transformed_coordi
我有两个数据帧,我在数据帧上应用了pnorm()和qnorm(),但我在计算时得到了错误。
n <- c(0.3,0.5,0.1,0.2)
m <- c(0.1,0.4,0.5,0.3)
o <- c(0.2,0.2,0.2,0.4)
p <- c(0.3,0.1,0.3,0.3)
df1 = data.frame(n,m,o,p)
df1
n m o p
1 0.3 0.1 0.2 0.3
2 0.5 0.4 0.2 0.1
3 0.1 0.5 0.2 0.3
4 0.2 0.3 0.4 0.3
r <- c(0.2,0.4,0.1,0.3)
我一直在为我的项目学习R,但一直无法在谷歌上搜索到我当前问题的解决方案。
我有大约100个csv文件,需要对它们执行一组精确的操作。我已经将它们作为单独的对象读取(我认为这可能是不恰当的r风格),但我无法编写一个可以循环的函数。每个csv都是一个包含信息的数据帧,其中包括一个以十进制年份格式表示日期的列。我需要创建2个包含年份和日期的新列。我已经想好了如何手动完成这项工作,我想找到一种自动化的方法。这是我一直在做的事情:
#setup
library(lubridate) #Used to check for leap years
df.00 <- data.frame( site =