标签: data-manipulation

使用多个变量和一些时间不变的方式从宽到面重塑数据框

这是Stata在一步中处理的数据分析中的基本问题.

使用时间不变数据(x0)和2000年和2005年的时变数据(x1,x2)创建一个宽数据框:

d1 <- data.frame(subject = c("id1", "id2"),  
x0 = c("male", "female"),  
x1_2000 = 1:2,   
x1_2005 = 5:6,  
x2_2000 = 1:2,  
x2_2005 = 5:6    
) 
Run Code Online (Sandbox Code Playgroud)

ST

subject x0 x1_2000 x1_2005 x2_2000 x2_2005  
1     id1 male         1       5       1       5  
2     id2 female       2       6       2       6  
Run Code Online (Sandbox Code Playgroud)

我想像面板一样塑造它,所以数据看起来像这样:

        subject     x0 time x1 x2
1     id1   male 2000  1  1
2     id2 female 2000  2  2
3     id1   male 2005  5  5
4     id2 female 2005  6  6
Run Code Online (Sandbox Code Playgroud)

我可以用reshapest 做到这一点 …

r panel data-manipulation reshape stata

8
推荐指数
1
解决办法
9384
查看次数

Javascript JSON数据操作库

我目前正在开发一个项目,我正在处理相当数量的JSON数据,这些数据被向后和向前传输并由浏览器存储为javascript对象列表.例如:

person: {
   // Primary Key
   key: "id",
   // The actual records
   table: {
       "1": {id: 1, name: "John", surname: "Smith", age: 26},
       "2": {id: 2, name: "Mary", surname: "Brown", age: 19},
       // etc..
   },
   indexes: {
       // Arrays of pointers to records defined above
       "name": [
            {id: 89, name: "Aaron", surname: "Jones", age: 42},
            // etc..
       ]
   }
Run Code Online (Sandbox Code Playgroud)

我发现自己编写了各种索引和排序算法来有效地操作这些数据,我开始认为这种事情必须在以前完成.

我有使用Ext.data.StoreExt.data.Record对象来执行这种数据操作的经验,但我认为它们对于初级开发人员而言过于复杂,而我正在开发的项目是一个小型移动应用程序,其中我们不能只为它添加一个300K +库,所以我需要一些非常小的东西.

任何想法,如果有一个Javascript JSON操作框架具有以下内容:

  1. 可以存储,
  2. 检索,
  3. 排序,
  4. 遍历 JSON数据,
  5. 使用干净的API …

javascript mobile json data-manipulation

8
推荐指数
1
解决办法
9464
查看次数

使用Python从数据框中删除多个列

我知道如何使用Python从数据框中删除列.但是对于我的问题,数据集很大,我想要删除的列被组合在一起,或者基本上是在列标题轴上单独展开.是否有一种更短的方法来切割或删除所有列的代码行数较少,而不是像我所做的那样将其写出来.我在这里的方式是有效的,但我想要一个更加总结的方式.

flight_data_copy_final是应该存储它的变量.

提前致谢

这是我的代码:

from IPython.display import display

flight_data_copy_version1 = flight_data_copy.drop(flight_data_copy.ix[:,"Year": "FlightDate"].columns, axis=1)
flight_data_copy_version2 = flight_data_copy_version1.drop("TailNum", axis=1)
flight_data_copy_version3 = flight_data_copy_version2.drop("OriginStateFips", axis=1)
flight_data_copy_version4 = flight_data_copy_version3.drop("DestStateFips", axis=1)
flight_data_copy_version5 = flight_data_copy_version4.drop("Diverted", axis=1)
flight_data_copy_version6 = flight_data_copy_version5.drop("Flights", axis=1)
flight_data_copy_final = flight_data_copy.drop(flight_data_copy_version6.ix[:,"FirstDepTime":].columns, axis=1)

print (display (flight_data_copy_final))
Run Code Online (Sandbox Code Playgroud)

python data-manipulation dataframe pandas

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

dplyr:如何以编程方式将full_join数据帧包含在列表列表中?

上下文和数据结构

我将与您分享我的庞大数据集的简化版本.这个简化版本完全尊重我原始数据集的结构,但包含的列表元素,数据框,变量和观察结果比原始数据集少.

根据对这个问题的最热烈回答:如何制作一个很好的R可重复的例子?,我使用输出共享我的数据集,通过dput(query1)在R控制台中复制/粘贴以下代码块,为您提供可立即在R中使用的内容:

       structure(list(plu = structure(list(year = structure(list(id = 1:3,
    station = 100:102, pluMean = c(0.509068994778059, 1.92866478959912,
    1.09517453602154), pluMax = c(0.0146962179957886, 0.802984389130343,
    2.48170762478472)), .Names = c("id", "station", "pluMean",
"pluMax"), row.names = c(NA, -3L), class = "data.frame"), month = structure(list(
    id = 1:3, station = 100:102, pluMean = c(0.66493845927034,
    -1.3559338786041, 0.195600637750077), pluMax = c(0.503424623872161,
    0.234402501255681, -0.440264545434053)), .Names = c("id",
"station", "pluMean", "pluMax"), row.names = c(NA, -3L), class = "data.frame"),
    week = structure(list(id = 1:3, station = 100:102, …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation dplyr tidyverse

8
推荐指数
1
解决办法
768
查看次数

使用R替换列中的NAs和其他列的值

我不知道如何更换NA与其他列的值以s列中的R使用dplyr.MWE在下面.

Letters <- LETTERS[1:5]
Char    <- c("a", "b", NA, "d", NA)
df1 <- data.frame(Letters, Char)
df1

library(dplyr]

df1 %>%
  mutate(Char1 = ifelse(Char != NA, Char, Letters))

     Letters Char Char1
1       A    a    NA
2       B    b    NA
3       C <NA>    NA
4       D    d    NA
5       E <NA>    NA
Run Code Online (Sandbox Code Playgroud)

r data-manipulation dplyr

8
推荐指数
1
解决办法
2589
查看次数

寻找具有条件的顺序模式

我有一个df

  Id  Event SeqNo
   1    A    1
   1    B    2
   1    C    3
   1    ABD  4
   1    A    5
   1    C    6
   1    A    7
   1    CDE  8
   1    D    9
   1    B    10 
   1    ABD  11
   1    D    12
   1    B    13
   1    CDE  14
   1    A    15
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种模式"ABD后跟CDE而它们之间没有事件B"例如,这个df的输出将是:

 Id  Event SeqNo
 1    ABD  4
 1    A    5
 1    C    6
 1    A    7
 1    CDE  8
Run Code Online (Sandbox Code Playgroud)

对于单个ID,可以多次遵循此模式,我想查找所有这些ID的列表及其各自的计数(如果可能).

python numpy data-manipulation dataframe pandas

8
推荐指数
1
解决办法
208
查看次数

用于从文本中剪切列的Windows命令

是否可以从windows命令行中提取下表中的第5列(某些内容如unix cut命令)

chrome.exe                   512 Console                 0     73,780 K
chrome.exe                   800 Console                 0     11,052 K
chrome.exe                  1488 Console                 0     92,720 K
chrome.exe                  1600 Console                 0     32,344 K
chrome.exe                  2240 Console                 0     35,132 K
chrome.exe                  2360 Console                 0     21,276 K
chrome.exe                  3524 Console                 0     66,732 K
chrome.exe                  3924 Console                 0     23,524 K
Run Code Online (Sandbox Code Playgroud)

以上内容存储在文件中.

windows command-line cut data-manipulation

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

将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
查看次数

按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
查看次数