小编abh*_*eor的帖子

XGBoost分类变量:Dummification与编码

使用时XGBoost我们需要将分类变量转换为数字.

以下方法之间的绩效/评估指标是否会有任何差异:

  1. 使您的分类变量变得模糊
  2. 将您的分类变量编码为例如(a,b,c)到(1,2,3)

也:

是否有任何理由不使用例如方法2 labelencoder

python categorical-data xgboost

32
推荐指数
3
解决办法
3万
查看次数

在 VS Code 中调试时查看数据帧

我正在尝试从 PyCharm 切换到 VS Code。我现在找不到在调试时以表格格式查看我的 Pandas DataFrame 的方法。

当我右键单击 df 对象时,没有查看选项。

我已经下载了 python 扩展。我错过了什么吗?

在此处输入图片说明

python pandas visual-studio-code

29
推荐指数
6
解决办法
2万
查看次数

在Hive JOIN中遇到左右别名; 没有任何不平等条款

我正在使用以下查询:

Select
   S.MDSE_ITEM_I,
   S.CO_LOC_I,
   MAX(S.SLS_D) as MAX_SLS_D,
   MIN(S.SLS_D) as MIN_SLS_D,
   sum(S.SLS_UNIT_Q) as SLS_UNIT_Q,
   MIN(PRSMN_VAL_STRT_D) as PRSMN_VAL_STRT_D,
   MIN(PRSMN_VAL_END_D) as PRSMN_VAL_END_D,
   MIN(RC.FRST_RCPT_D) as FRST_RCPT_D,
   MIN(RC.CURR_ACTV_FRST_OH_D) as CURR_ACTV_FRST_OH_D,
   MIN(H.GREG_D) as  OH_GREG_D  
from
   eefe_lstr4.SLS_TBL as S  
left outer join
   eefe_lstr4.PRS_TBL P 
      on S.MDSE_ITEM_I = P.MDSE_ITEM_I 
      and S.CO_LOC_I = P.CO_LOC_I 
      and S.SLS_D between PRSMN_VAL_STRT_D and PRSMN_VAL_END_D  
left outer join
   eefe_lstr4.OROW_RCPT RC 
      on RC.MDSE_ITEM_I =S.MDSE_ITEM_I 
      and RC.CO_LOC_I =  S.CO_LOC_I  
left outer join
   eefe_lstr4.OH H 
      on H.MDSE_ITEM_I =S.MDSE_ITEM_I 
      and H.CO_LOC_I = S.CO_LOC_I  
group by
   S.MDSE_ITEM_I,
   S.CO_LOC_I;
Run Code Online (Sandbox Code Playgroud)

我收到错误说: …

sql hive hiveql

11
推荐指数
3
解决办法
3万
查看次数

Spark 将数据写入分区的 Hive 表非常慢

我想以正常可读的文本格式将 Spark 数据帧存储到 Hive 表中。为此,我首先做了

sqlContext.sql("SET spark.sql.hive.convertMetastoreParquet=false")
Run Code Online (Sandbox Code Playgroud)

我的数据帧是这样的:

final_data1_df = sqlContext.sql("select a, b from final_data")
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过以下方式编写它:

final_data1_df.write.partitionBy("b").mode("overwrite").saveAsTable("eefe_lstr3.final_data1")
Run Code Online (Sandbox Code Playgroud)

但这非常慢,甚至比HIVE table write还要慢。所以为了解决这个问题,我想通过 Hive DDL 语句定义分区,然后加载如下数据:

sqlContext.sql("""
CREATE TABLE IF NOT EXISTS eefe_lstr3.final_data1(
a BIGINT
)
PARTITIONED BY (b INT)
"""
)
sqlContext.sql("""
INSERT OVERWRITE TABLE eefe_lstr3.final_data1 PARTITION (stategroup)
select * from final_data1""")
Run Code Online (Sandbox Code Playgroud)

但这提供了分区的 Hive 表,但仍然是镶木地板格式的数据。我在这里错过了什么吗?

hadoop apache-spark pyspark spark-dataframe

6
推荐指数
1
解决办法
3479
查看次数

python:字典到字典的元组

如何转换字典元组,如下例所示:

({(1, 2): 3},
 {(1, 3): 5},
 {(1, 4): 5},
 {(2, 4): 5},
 {(1, 5): 10},
 {(2, 6): 9},
 {(1, 6): 9},
 {(2, 1): 2},
 {(2, 2): 3},
 {(2, 3): 5},
 {(2, 5): 10},
 {(1, 1): 2})
Run Code Online (Sandbox Code Playgroud)

更简单的形式,如字典:

{(1, 1): 2,
 (1, 2): 3,
 (1, 3): 5,
 (1, 4): 5,
 (1, 5): 10,
 (1, 6): 9,
 (2, 1): 12,
 (2, 2): 7,
 (2, 3): 7,
 (2, 4): 3,
 (2, 5): 4,
 (2, 6): 2}
Run Code Online (Sandbox Code Playgroud)

python dictionary tuples

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

data.table/data.frame rbind不能正常工作

我正在使用data.table 1.9.6.这是一些简单的代码和输出:

df <- data.table(a=c(NA,NA,2,2),b=c(1,1,2,2))
nrow(df[is.na(a)]) + nrow(df[!is.na(a)])
# [1] 4
nrow(rbind(df[is.na(a)],df[!is.na(a)]))
# [1] 4
nrow(rbind(df[is.na(a),b := a],df[!is.na(a)]))
# [1] 6
rbind(df[is.na(a),b := a],df[!is.na(a)])
#     a  b
# 1: NA NA
# 2: NA NA
# 3:  2  2
# 4:  2  2
# 5:  2  2
# 6:  2  2
rbind(df[is.na(a),a := b],df[!is.na(a)])
#     a  b
# 1: NA NA
# 2: NA NA
# 3:  2  2
# 4:  2  2
# 5:  2  2
# 6:  2 …
Run Code Online (Sandbox Code Playgroud)

r dataframe rbind data.table

3
推荐指数
1
解决办法
391
查看次数

用NA inplace data.table替换"NA"(NA字符串)

我有这个虚拟数据集:

abc <- data.table(a = c("NA", "bc", "x"), b = c(1, 2, 3), c = c("n", "NA", "NA"))
Run Code Online (Sandbox Code Playgroud)

我试图用标准NA替换"NA"; 使用data.table到位.我试过了:

for(i in names(abc)) (abc[which(abc[[i]] == "NA"), i := NA])
for(i in names(abc)) (abc[which(abc[[i]] == "NA"), i := NA_character_])
for(i in names(abc)) (set(abc, which(abc[[i]] == "NA"), i, NA))
Run Code Online (Sandbox Code Playgroud)

但仍然有这个我得到:

abc$a 
"NA" "bc" "x"
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

编辑:我在这个问题中尝试了@frank的答案type.convert().(谢谢坦率;不知道这种模糊但有用的功能)在文档中type.convert()提到:"这主要是read.table的辅助函数." 所以我想彻底测试一下.当您有一个填充"NA"(NA字符串)的完整列时,此功能会产生较小的副作用.在这种情况下type.convert(),将列转换为逻辑列.对于这种情况abc将是:

abc <- data.table(a = c("NA", "bc", "x"), b = c(1, 2, 3), c = c("n", "NA", …
Run Code Online (Sandbox Code Playgroud)

r data.table

0
推荐指数
1
解决办法
175
查看次数