小编Mac*_*lda的帖子

更改R中已过滤的data.frame中的一列中的所有值

我有一个非常混乱的数据框架,其中一列的值可以理解为人类而不是计算机,有点像下面的那样.

df<-data.frame("id"=c(1:10), 
           "colour"=c("re d", ", red", "re-d","green", "gre, en", ", gre-en",  "blu e", "green", ", blue", "bl ue"))
Run Code Online (Sandbox Code Playgroud)

我可以过滤掉df str_detect

df %>% filter(str_detect(tolower(colour), pattern = "gr")) 
Run Code Online (Sandbox Code Playgroud)

但我想将所有过滤后的结果重命名为相同的值,以便我可以纠缠它.
有什么建议?
我试图用模式分开,但没有成功.

编辑:不是全部.在我正在使用的df中不需要空格.让我们说在制作df中写绿色的正确方法是"gr.een".

编辑2:
想要的结果与伪造的颜色拼写只是为了得到一个想法:

id     colour
1      r. ed
2      r. ed
3      r. ed
4      gr. een
6      gr. een
7      gr. een
8      blu. e
9      gr. een           
10     blu. e
Run Code Online (Sandbox Code Playgroud)

r stringr dplyr

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

ggplot2、r 直方图中不同的 bin 宽度

我读过其他具有类似标题的问题,但没有运气解决我的问题。我有一个包含两列的数据框:销售额和规模。sales 是数字,size 是字符,有“Small (1-20)”、“Medium (20-50)”、“Large (50-100)”和“Extra Large (>200)”。我想制作一个直方图,其中箱宽度等于不同尺寸。与breaks= seq(.....)间隔是相同的。有什么方法可以使用 ggplot2 在我的垃圾箱中设置不同的间隔吗?

如果这是重复的,我很抱歉,但我确实尝试在其他问题中找到答案,但要么没有提出这个确切的问题,要么我太愚蠢而无法理解解释。

mydf <- data.frame(
  Sales = c(301, 5, 4, 26, 19, 82, 111, 41, 29, 12),
  Size = c("Extra Large (>200)", "Small (1-20)", "Small (1-20)", "Medium (21-50)", 
      "Small (1-20)", "Large (51-200)", "Large (51-200)", 
      "Medium (21-50)", "Medium (21-50)", "Small (1-20)" ))

mydf %>% ggplot(aes(Sales))+geom_histogram(aes(y=..count..))
Run Code Online (Sandbox Code Playgroud)

创建的直方图需要一些带宽调整,在这里我想使用已经描述的类别的“宽度”。

r histogram ggplot2

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

使用 pandas 将字符串列更改为多个布尔列

我有一个两列的数据集,我想对其进行重塑。
看看这个假的 df:

df=pd.DataFrame([
    ['Alex', 'Apple'],['Bob', 'Banana'],['Clark', 'Citrus'], ['Diana', 'Banana'], [
'Elisa', 'Apple'], ['Frida', 'Citrus'], ['George', 'Citrus'], ['Hanna', 'Banana']
],columns=['Name', 'Fruit'])
Run Code Online (Sandbox Code Playgroud)

我想要四列;名称:Apple、Banana 和 Citrus,其中后三个是布尔值(真/假)。
我看过 inte unstack 但它确实不是我想要的。

python pandas

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

展开一列条目并添加熊猫中一个或多个行的值

我有一个数据框,其中的条目具有相同的含义,我想将它们放在同一行(和列)中。我的模拟df:

my = pd.DataFrame(
{'fruit': ['Apple', 'Banana', 'Pomme', 'aeble', 'Banan', 'Orange', 'Apelsin'],
'bites': [1, 2, 3, 1, 2, 3, 4]})
Run Code Online (Sandbox Code Playgroud)

以及我想要的是:

在此处输入图片说明

我最接近的是

my.loc['Apple'] +=my.loc['Pomme'] += my.loc['aeble']
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更简单的方法。

python pandas

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

标签 统计

pandas ×2

python ×2

r ×2

dplyr ×1

ggplot2 ×1

histogram ×1

stringr ×1