标签: data-manipulation

R:当两个条件之一匹配时合并两个数据框

假设我有两个数据框,如下所示:

n = c(2, 3, 5, 5, 6, 7) 
s = c("aa", "bb", "cc", "dd", "ee", "ff") 
b = c(2, 4, 5, 4, 3, 2) 
df = data.frame(n, s, b)
#  n  s b
#1 2 aa 2
#2 3 bb 4
#3 5 cc 5  
#4 5 dd 4
#5 6 ee 3
#6 7 ff 2

n2 = c(5, 6, 7, 6) 
s2 = c("aa", "bb", "cc", "ll") 
b2 = c("hh", "nn", "ff", "dd")  
df2 = data.frame(n2, s2, …
Run Code Online (Sandbox Code Playgroud)

merge r data-manipulation

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

pandas fillna 来自另一列的日期

获取我的测试数据:

 import pandas as pd

 df =    {'Id': {1762056: 2.0, 1762055: 1.0},
'FillDate': {1762056: Timestamp('2015-08-01 00:00:00'), 1762055:Timestamp('2015-08-01 00:00:00')}, 
 'Date': {1762056: nan, 1762055: nan}, 
 }

df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

数据看起来像:

        Id         Date        FillDate
        1.0      NaN         2015-08-01
        2.0      NaN         2015-08-01
Run Code Online (Sandbox Code Playgroud)

因此,为了填补缺失的日期,我这样做:

df['Date'].fillna(df['FillDate'], inplace=True)
Run Code Online (Sandbox Code Playgroud)

这给了我

         Id    Date                  FillDate
        1.0  1438387200000000000  2015-08-01
        2.0  1438387200000000000  2015-08-01
Run Code Online (Sandbox Code Playgroud)

如何获取Date日期形式的列

python datetime date data-manipulation pandas

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

将一列的唯一值转换为多列,其中包含另一列中的对应值

这是一个类似于我正在使用的示例数据框:

set.seed(74.3)
df<-data.frame(ID=sample(c(1000:1004),size=20,replace=T),
Fruit=sample(c("Apple","Banana","Pear","Orange","Plum"),size=20,replace=T))
library(dplyr) 
df <- df %>%
group_by(ID,Fruit) %>% 
summarise(n=n())


      ID  Fruit     n
   (int) (fctr) (int)
1   1000 Banana     1
2   1000 Orange     3
3   1000   Pear     1
4   1001 Banana     1
5   1001   Plum     2
6   1002 Banana     1
7   1003 Banana     1
8   1003 Orange     2
9   1003   Pear     1
10  1003   Plum     1
11  1004  Apple     2
12  1004 Banana     2
13  1004 Orange     1
14  1004   Pear     1
Run Code Online (Sandbox Code Playgroud)

如何转置 Fruit 和 n 列并对 ID …

r data-manipulation dataframe

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

根据 R 中数据帧中另一列的条件过滤数据帧

我想根据条件过滤以下 R 数据帧,即如果“分数”列在同一 ID 中没有 A,则删除与该 ID 关联的行。例如,对于 ID 号为 2 的行,只有 C 和 B,而没有 A。因此删除 ID 号为 2 的行。

 dat <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), 
    Score = structure(c(1L, 1L, 2L, 3L, 2L, 2L, 2L, 3L, 3L, 1L
    ), .Label = c("A", "B", "C"), class = "factor"), Info = c(1L, 
    10L, 7L, 8L, 9L, 1L, 7L, 8L, 3L, 2L)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation subset filter dataframe

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

找到至少一列不是 NA 的最后一行

我有一个对象,在一定数量的行之后,每列中都有所有 NA。一些列在此之前也有 NA。我想获取至少一列有数据的最后一行的行索引。以下是一些可以使用的示例数据:

编辑:为了健壮性,我在@G 之后的第二行添加了 NA。格洛腾迪克评论。在这种情况下,输出仍应为 5。

df <- data.frame(a = 1:5, b = 6:10, c = c(1:3,rep(NA, 2)))
df <- rbind(df, rep(NA, ncol(df)), rep(NA, ncol(df)))
df[2,] <- NA

df
   a  b  c
1  1  6  1
2 NA NA NA
3  3  8  3
4  4  9 NA
5  5 10 NA
6 NA NA NA
7 NA NA NA
Run Code Online (Sandbox Code Playgroud)

r data-manipulation dataframe dplyr data.table

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

如何用 pandas 中的值替换空字典

我有以下内容:

pd.DataFrame({
    'a' : { 1 : {}},
    'b' : {1 : 3}
})
Run Code Online (Sandbox Code Playgroud)

看起来像:

    a  b
1  {}  3
Run Code Online (Sandbox Code Playgroud)

并且希望能够{}用 0 或 NaN 替换 ,但我不知道如何去做。.replace我似乎无法使用它

pd.DataFrame({
    'a' : { 1 : {}},
    'b' : {1 : 3}
}).replace({ {} : 0})
Run Code Online (Sandbox Code Playgroud)

给出一个错误

python data-manipulation pandas data-cleaning

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

选择至少具有一个(任何)负值的行

我正在创建一个新的 data.table,其中包含至少具有一个负值的所有行。

这是一个简单的可重现数据表:

dt <- data.table(
  ID = c(42, 43, 44),
  Stage_1 = c(-6, 7, 4),
  Stage_2 = c(-15, 4, -8),
  Stage_3 = c(-20, 2, -5)
)

#    ID Stage_1 Stage_2 Stage_3
# 1: 42      -6     -15     -20 # <~~ row to be selected (> 0 negative values)
# 2: 43       7       4       2
# 3: 44       4      -8      -5 # <~~ row to be selected (> 0 negative values)
Run Code Online (Sandbox Code Playgroud)

我想要的输出是:

dt2 <- data.table(
  ID = c(42, 44),
  Stage_1 = …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation subset data.table

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

通过numpy数组用行和列替换子集pandas数据框

我想使用 numpy 数组来替换 Pandas 数据帧中的子集数据帧。

例如:一个熊猫数据框df

df_subset = df.loc[[1,3,5,7,9], ["A", "B", "C"]]
Run Code Online (Sandbox Code Playgroud)

这里,子集数据帧的维度为(5, 3)

下面是 numpy 数组示例,其形状与我想替换为的子集数据帧相同:

replace_value = np.array([[1, 2, 3], [4, 4, 4], [1, 6, 8], [1, 3, 6], [8, 0, 1]])
Run Code Online (Sandbox Code Playgroud)

有没有类似的方法:

df_subset.values = replace_value 
Run Code Online (Sandbox Code Playgroud)

我希望的是我替换的值会直接改变df. 这意味着如果我df再次使用相同的索引和列进行子集化,我将获得与我replace_value如上分配的 numpy 数组一样的确切值。

python data-manipulation dataframe python-3.x pandas

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

如何将字符串整数数组转换为整数数组?红宝石

我有一个数组:

all_ages = ["11", "9", "10", "8", "9"]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为整数数组,以便更容易将它们全部加在一起。非常感谢任何帮助,寻找一级解决方案。

ruby arrays string integer data-manipulation

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

重新编码变量

我想重新编码一个变量,以便,例如,我们可以通过以下方式获得变换这个向量:

> a <- c(0,0,0,0,0,1,1,1,1,1) # original 
> b <- c(-5,-4,-3,-2,-1,0,1,2,3,4) # transformed
> cbind(a,b)
  a  b
 [1,] 0 -5
 [2,] 0 -4
 [3,] 0 -3
 [4,] 0 -2
 [5,] 0 -1
 [6,] 1  0
 [7,] 1  1
 [8,] 1  2
 [9,] 1  3
[10,] 1  4
>
Run Code Online (Sandbox Code Playgroud)

这些变量遵循一个顺序,恰好是一个时间顺序.在原始数据集中,我有一个编码为"0"或"1"的变量,例如这里的例子中的"a".它是每年的分类指标.在某些时候,存在从"0"到"1"的转变,就像在这些示例中的行号6中一样.然后我想重新编码原始变量,创建一个新变量,它实际上告诉我从"0"变为"1"之前和之后多少年.因此," - 5"表示转换前五年,"0"表示转换年份,例如,"4"表示转换后四年.有什么建议可以做到最好吗?谢谢!安东尼奥.

r data-manipulation

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