这是我的数据:
BuyDate SellDate Number
2015-01-01 NA 1
2015-01-01 2015-01-03 1
2015-01-01 2015-01-03 -1
2016-12-09 NA -1
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列Start,所以我可以得到以下结果.
BuyDate SellDate Number Start
2015-01-01 NA 1 2015-01-01
2015-01-01 2015-01-03 1 2015-01-01
2015-01-01 2015-01-03 -1 2015-01-03
2016-12-09 NA -1 2016-12-09
Run Code Online (Sandbox Code Playgroud)
代码是:
data[,Start:=ifelse(Number=="1",BuyDate,ifelse(is.na(SellDate),BuyDate,SellDate))]
Run Code Online (Sandbox Code Playgroud)
但是,我得到:
BuyDate SellDate Number Start
2015-01-01 NA 1 1420070400
2015-01-01 2015-01-03 1 1420070400
2015-01-01 2015-01-03 -1 1420243200
2016-12-09 NA -1 1481241600
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
str(data)
Classes ‘data.table’ and 'data.frame':
$BuyDate : POSIXct, format: "2015-01-01" "2015-01-01" "2015-01-01" "2016-12-09"
$SellDate: POSIXct, format: NA …Run Code Online (Sandbox Code Playgroud) 我有一个关于data.table' melt和dcast多列的问题.我在StackOverFlow上浏览过,但很多类似的帖子都不是我想要的.我将在下面解释.
首先,data是关于问题的原因和价值量.这是我的一部分data:
ID Type Problem1 Value1 Problem2 Value2 Problem3 Value3
1 A X 500 Y 1000 Z 400
2 A X 600 Z 700
3 B Y 700 Z 100
4 B W 200 V 200
5 C Z 500 V 500
6 C X 1000 W 100 V 900
Run Code Online (Sandbox Code Playgroud)
第二,ID是独一无二的.Type包含三个(A,B,和C).有5个问题.
以ID == 1作为一个例子.这是Type A …
我有以下数据:
col1
086945159
549615853
589ac2546
GED456231
F56hy8W12
Run Code Online (Sandbox Code Playgroud)
我想查找是否col有非数字值并返回。
col1 col2
086945159 086945159
549615853 549615853
589ac2546 Nan
GED456231 Nan
F56hy8W12 Nan
111111111 Nan
222222222 Nan
Run Code Online (Sandbox Code Playgroud)
我re.search(r'[^0-9]+', str)以前找过。但是,我如何在 in 中使用它,apply()因为如果 incol中的值具有相同的数字,例如11111111and 222222222,则这应该返回Nan.
我有两个data( .xlsx),DT1和DT2. 我想创建一个新列newcol的DT1基础上的原始列DT1,映射在列DT2。
我知道这是模棱两可的,所以我在这里解释更多:
首先,这是我的两个数据。
DT1
code type
AH1 AM
AS5 AM
NMR AM
TOS AM
IP AD
CC ADCE
CA Wa
DT2
code year month
AH1 2011 2
AH1 2011 5
AS5 2012 7
AS5 2012 6
AS5 2013 3
CC 2014 6
CA 2016 11
Run Code Online (Sandbox Code Playgroud)
其次, in DT2、 columnyear和month在这个问题中并不重要。我们不需要考虑它。
三、我想要的结果是:
DT2
code year month newcol
AH1 2011 2 …Run Code Online (Sandbox Code Playgroud) 我对日期结束有疑问,我将在下面解释.
这是我的示例数据:
DATE
2015-01-01
2015-02-05
2015-09-29
2016-02-07
2016-07-24
2016-12-16
Run Code Online (Sandbox Code Playgroud)
我知道如果我想要那个月的总天数,代码是:
days_in_month(DATE)
Run Code Online (Sandbox Code Playgroud)
但是,我想要的是如下:
DATE DATE_Month_End
2015-01-01 2015-01-31
2015-02-05 2015-02-28
2015-09-29 2015-09-30
2016-02-07 2016-02-29
2016-07-24 2016-07-31
2016-12-16 2016-12-31
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我有一个简单的问题要弄清楚:
value
1000
2500
5080
10009
Run Code Online (Sandbox Code Playgroud)
我想指定value一个间隔:
value Range
1000 0-1000
2500 1001-5000
5080 5001-10000
10009 10001-20000
Run Code Online (Sandbox Code Playgroud)
我尝试这样:
dt[, Range := ifelse(value < 1001, "0-1000", ifelse(1000 < value < 5001, "1001-5000", ifelse(5000 < value < 10001, "5001-10000", "10001-20000")))
Run Code Online (Sandbox Code Playgroud)
但是,我得到了 Error: unexpected '<' in "dt[, Range := ifelse(value < 1001, "0-1000", ifelse(1000 < value <"
有什么帮助吗?
编辑:
这个问题并不要求将连续变量转换为因子的最佳方法。它要求可复制示例的调试帮助:
library(data.table)
dt <- data.table(value = c(1000, 2500, 5080, 10009))
dt[, Range := ifelse(value < 1001, "0-1000", ifelse(1000 < value < 5001, …Run Code Online (Sandbox Code Playgroud) 我有一个下面的数据框:
col1
Numb10
Numb11
Numb12
Numb7
Numb8
Run Code Online (Sandbox Code Playgroud)
如何按数字顺序排序:
col1
Numb7
Numb8
Numb10
Numb11
Numb12
Run Code Online (Sandbox Code Playgroud)
我尝试过但出现错误TypeError: cannot convert the series to <class 'int'>。
df.sort_values(by = "col1", key = (lambda x: int(x[4:])))
Run Code Online (Sandbox Code Playgroud)
更新一下,缺了一个col1
r ×5
data.table ×4
date ×2
pandas ×2
python ×2
dataframe ×1
if-statement ×1
python-re ×1
regex ×1
sorting ×1