标签: data-manipulation

你如何处理fetchxml结果数据?

我已经避免使用fetchxml,因为我一直不确定在调用crmService.Fetch(fetchXml)之后处理结果数据的最佳方法.在几种情况下,我使用带有LINQ的XDocument从此数据结构中检索数据,例如:

XDocument resultset = XDocument.Parse(_service.Fetch(fetchXml));
if (resultset.Root == null || !resultset.Root.Elements("result").Any())
{
    return;
}
foreach (var displayItem in resultset.Root.Elements("result").Select(item => item.Element(displayAttributeName)).Distinct())
{
    if (displayItem!= null && displayItem.Value != null)
    {
        dropDownList.Items.Add(displayItem.Value);    
    }
}
Run Code Online (Sandbox Code Playgroud)

处理fetchxml结果数据的最佳方法是什么,以便可以轻松使用.诸如将这些记录传递到ASP.NET数据网格之类的应用程序将非常有用.

xml data-manipulation dynamics-crm fetchxml data-structures

7
推荐指数
2
解决办法
9161
查看次数

将cateorical值转换为布尔列SQL

我希望'压扁'我的数据集以便于数据挖掘.每个分类列应更改为多个布尔列.我有一个具有分类值的列,例如:

 ID    col1
  1     A
  2     B
  3     A
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来转动这个表,并有一个聚合函数告诉我这个ID是否有值A或B:

结果:

 ID    col1A    col1B
  1     1        0
  2     0        1
  3     1        0
Run Code Online (Sandbox Code Playgroud)

我尝试使用PIVOT,但不知道在其中使用哪个聚合函数.

也寻找SF的答案,但找不到任何...

我正在使用MS-SQL 2012.

任何帮助,将不胜感激!奥马里

编辑:

col1中的类别数量未知,因此解决方案必须是动态的.谢谢 :)

sql t-sql pivot data-manipulation sql-server-2012

7
推荐指数
1
解决办法
2195
查看次数

除了使用表达式之外,我可以使用C++访问对象吗?

根据C++ 03 3.10/1,每个表达式都是左值或左值.当我用来=为变量赋值时,赋值左边的变量名是左值表达式.它看起来就像我尝试用变量做的一样,它仍然会使用一些表达式.

除了使用表达式之外,有没有办法在C++中操作变量?

c++ expression data-manipulation language-lawyer

7
推荐指数
1
解决办法
170
查看次数

按R中的组转置数据

我有以下结构的数据:

x <- read.table(header=T, text="
X Y D S
a e 1 10
a e 2 20
a f 1 50
b c 1 40
b c 2 30
b c 3 60
b d 1 10 
b d 2 20")
Run Code Online (Sandbox Code Playgroud)

我希望得到以下结果:

X Y   1   2   3
a e  10  20
a f  50
b c  40  30  60
b d  10  20
Run Code Online (Sandbox Code Playgroud)

对于列的每个组合XY我想转列数据S的顺序列D.

我认为xtabs()会有用,但我不这么认为,我最好的版本是:

xtabs(formula=S~Y+D,data=x)
Run Code Online (Sandbox Code Playgroud)

结果如下:

   D
Y    1 …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation reshape

7
推荐指数
2
解决办法
1万
查看次数

快速分割字符串并在data.table中转换为长格式

我做了以下事情

library(data.table)
library(stringr)        
dt <- data.table(string_column = paste(sample(c(letters, " "), 500000, replace = TRUE)
                                     , sample(c(letters, " "), 500000, replace = TRUE)
                                     , sample(1:500000)
                                 , sep = " "), key = "string_column") 

split_res <- dt[, list(name = unlist(str_split(string_column, '\\s+'))), by = string_column]
Run Code Online (Sandbox Code Playgroud)

对于真实数据,它需要大约.1小时处理dt(10M行)并创建split_res(18M行)出于好奇 - 有没有办法加快进程?也许unlist + str_split这不是正确的方法吗?

substring r data-manipulation data.table

7
推荐指数
1
解决办法
2312
查看次数

清理R数据框,以便在列中没有行值大于下一行值的2倍

我有一个数据框,如下所示

dist <- c(1.1,1.0,10.0,5.0,2.1,12.2,3.3,3.4)
id <- rep("A",length(dist))
df<-cbind.data.frame(id,dist)

df

  id dist
1  A  1.1
2  A  1.0
3  A 10.0
4  A  5.0
5  A  2.1
6  A 12.2
7  A  3.3
8  A  3.4
Run Code Online (Sandbox Code Playgroud)

我需要清理它,因此dist列中的行值在任何时候都不会大于下一行值的2倍.清理后的数据框如下所示:

  id dist
1  A  1.1
2  A  1.0
5  A  2.1
7  A  3.3
8  A  3.4
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用for循环和if语句来清理它

cleaner <-  function (df,dist,times_larger) {

              for (i in 1:(nrow(df)-1)) {

                  if (df$dist[i] > df$dist[i+1]*times_larger){
                    df<-df[-i,]
                    break       
                  }
              }
              df
            }
Run Code Online (Sandbox Code Playgroud)

显然,如果我不打破循环,它将产生错误,因为df中的行数将在此过程中发生变化.如果我在df上手动运行循环几次:

df<-cleaner(df,"dist",2)
Run Code Online (Sandbox Code Playgroud)

它将按我的要求清理.

我也尝试了不同的函数结构,并将其应用于数据框,但没有任何运气.

有没有一个很好的建议,如何重复数据框上的功能,直到它不再改变,更好的功能结构或更好的清洁方式?

任何建议都非常感谢

r data-manipulation dataframe data-cleaning

7
推荐指数
2
解决办法
827
查看次数

具有不同分母R的分裂的累积和

好的,这是我希望使用高效,优雅的解决方案解决的问题,例如data.table或dplyr.

限定:

DT = data.table(group=c(rep("A",3),rep("B",5)),value=c(2,9,2,3,4,1,0,3))

   time group value  
1:    1     A     2  
2:    2     A     9 
3:    3     A     2 
4:    1     B     3     
5:    2     B     4 
6:    3     B     1 
7:    4     B     0 
8:    5     B     3 
Run Code Online (Sandbox Code Playgroud)

我想要得到的是一组累计和的值除以它们被观察的时刻的逆序.

   time group value    RESULT
1:    1     A     2  2.000000
2:    2     A     9 10.000000
3:    3     A     2  7.166667
4:    1     B     3  3.000000
5:    2     B     4  5.500000
6:    3     B     1  4.000000
7:    4     B     0  2.583333 …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation dplyr data.table

7
推荐指数
1
解决办法
281
查看次数

获取组中的第一个和最后一个值 - dplyr group_by with last()和first()

下面的代码应该按年度对数据进行分组,然后创建两个具有每年第一个和最后一个值的新列.

library(dplyr)

set.seed(123)

d <- data.frame(
    group = rep(1:3, each = 3),
    year = rep(seq(2000,2002,1),3),
    value = sample(1:9, r = T))

d %>% 
    group_by(group) %>%
    mutate(
        first = dplyr::first(value),
        last = dplyr::last(value)
    )
Run Code Online (Sandbox Code Playgroud)

但是,它不能正常工作.预期的结果是

  group  year value first  last
  <int> <dbl> <int> <int> <int>
1     1  2000     3     3     4
2     1  2001     8     3     4
3     1  2002     4     3     4
4     2  2000     8     8     1
5     2  2001     9     8     1
6     2  2002     1     8     1 …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation dplyr

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

R - 使用 purrr 将列表列表中的 NULL 元素替换为 NA

在清理列表上使用 rbindlist 之前,我尝试用 map() 内的 NA 替换下面列表的 NULL 元素:

m = list(min = list(id = "min", val = NULL), 
     max = list(id = "max", val = 7), 
     split = list(id = "split", val = "gini"))

str(m)
List of 3
 $ min  :List of 2
  ..$ id : chr "min"
  ..$ val: NULL
 $ max  :List of 2
  ..$ id : chr "max"
  ..$ val: num 7
 $ split:List of 2
  ..$ id : chr "split"
  ..$ val: chr "gini"
Run Code Online (Sandbox Code Playgroud)

我已经尝试过: …

r list data-manipulation purrr

7
推荐指数
1
解决办法
2032
查看次数

从 pandas 的行中过滤 nan 值

我正在开发一个计算器来确定给鱼喂什么,这是一个学习 python、pandas 和 numpy 的有趣项目。

我的数据是这样组织的:

在此输入图像描述

正如你所看到的,我的鱼是行,不同的食物是列。

我希望做的是让用户(我)输入食物,然后让程序向我输出所有非 nan 的值。

我宁愿将它们保留为 nan 而不是 0 的原因是我在不同的位置使用不同的数字来表示偏好。1是自然饮食,2是可以,但不理想,3是只吃生食。

有没有办法使用 pandas 来做到这一点?我在网上查找的每个地方都可以帮助我从列中过滤行,但是很难找到有关从行中过滤列的信息。

目前,我的代码如下所示:

import pandas as pd
import numpy as np


df = pd.read_excel(r'C:\Users\Daniel\OneDrive\Documents\AquariumAiMVP.xlsx')
clownfish = df[0:1]
angelfish = df[1:2]
damselfish = df[2:3]
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,我还没有真正取得任何进展。我尝试使用以下想法过滤掉空值:

clownfish_wild_diet = pd.isnull(df.clownfish)
Run Code Online (Sandbox Code Playgroud)

但它会导致一个错误,说:

AttributeError:“DataFrame”对象没有属性“clownfish”

谢谢你们的帮助。我是一个十足的熊猫菜鸟,所以非常感谢。

python data-manipulation dataframe pandas

7
推荐指数
1
解决办法
4023
查看次数