我已经避免使用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数据网格之类的应用程序将非常有用.
我希望'压扁'我的数据集以便于数据挖掘.每个分类列应更改为多个布尔列.我有一个具有分类值的列,例如:
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中的类别数量未知,因此解决方案必须是动态的.谢谢 :)
根据C++ 03 3.10/1,每个表达式都是左值或左值.当我用来=
为变量赋值时,赋值左边的变量名是左值表达式.它看起来就像我尝试用变量做的一样,它仍然会使用一些表达式.
除了使用表达式之外,有没有办法在C++中操作变量?
我有以下结构的数据:
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)
对于列的每个组合X
和Y
我想转列数据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) 我做了以下事情
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
这不是正确的方法吗?
我有一个数据框,如下所示
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)
它将按我的要求清理.
我也尝试了不同的函数结构,并将其应用于数据框,但没有任何运气.
有没有一个很好的建议,如何重复数据框上的功能,直到它不再改变,更好的功能结构或更好的清洁方式?
任何建议都非常感谢
好的,这是我希望使用高效,优雅的解决方案解决的问题,例如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) 下面的代码应该按年度对数据进行分组,然后创建两个具有每年第一个和最后一个值的新列.
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) 在清理列表上使用 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)
我已经尝试过: …
我正在开发一个计算器来确定给鱼喂什么,这是一个学习 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”
谢谢你们的帮助。我是一个十足的熊猫菜鸟,所以非常感谢。