小编JAG*_*024的帖子

使用dplyr/tidyr将行转换为R数据框中的列

我有一个这样的数据框:

year <-c(floor(runif(100,min=2015, max=2017)))
month <- c(floor(runif(100, min=1, max=13)))
inch <- c(floor(runif(100, min=0, max=10)))
mm <- c(floor(runif(100, min=0, max=100)))
df = data.frame(year, month, inch, mm);

year month inch mm
2016    11    0 10
2015     9    3 34
2016     6    3 33
2015     8    0 77
Run Code Online (Sandbox Code Playgroud)

我只关心列year,monthmm.

我需要重新排列数据框,以便第一列是月份的名称,其余列是值mm.

Months  2015  2016
Jan     #    #
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Run Code Online (Sandbox Code Playgroud)

所以有两件事需要发生.(1)月份需要成为当月前三个字母的字符串.(2)我需要按年份分组,然后将mm值放在该年下的一列中.

到目前为止,我有这个代码,但我无法弄清楚:

df %>% 
  select(-inch) %>% …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr tidyr

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

基于数据框中的列创建 6 个条形子图

我有一个看起来像这样的条形图: 图。1

我希望根据我的数据框的列制作六个不同的条形图(每个“季节”一个,例如 MAM 16)dat

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

labels = {'pod','MAM-16',  'MAM-17',  'JJAS-16', 'JJAS-17', 'OND-15','OND-16'}
rf = [('22','343.7','467.4', '157', '251', '100','142.5'),
('72',  '82',  '184.4',   '143.3',  '12.7',  '120',  '152.4'),
('79',  '76.5',    '167.4',   '118.1',   '185.4',  '190', '145'),
('86',  '993.4',   '66.5',    '198.9',   '14', '78', '84.8'),
('87',  '206.2',   '178.1',   '121.4',   '285.2',  '89' ,'65'),
('88',  '209.3',   '280.4',  '138.4',   '279.9', '84',  '141'),
('90' , '134.9',   '137.9',   '92.7',    '224', '111', '133.1'),
('93',  '180.8',   '113.8',   '179.6',   '108.2', '184', …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib dataframe pandas

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

仅为非零值运行 df.describe()

我有一个daily看起来像这样的数据框

import pandas as pd
daily

time_stamp  22          72      79          86      87          88          90  
2013-10-01  0.000000    0.000   8.128000    0.254   0.000000    0.000000    0.000000
2013-10-01  0.000000    0.000   8.128000    0.254   0.000000    0.000000    0.000000
2013-10-02  0.000000    0.000   0.000000    0.000   0.000000    0.000000    0.000000
2013-10-04  0.000000    0.000   0.000000    0.000   2.540000    0.762000    0.000000
2013-10-08  2.286000    0.000   0.000000    1.016   1.016000    0.254000    0.000000
2013-10-11  2.794000    0.000   0.000000    0.000   3.810000    1.016000    0.762000
2013-10-12  1.524000    0.000   0.000000    2.286   5.588000    0.254000    26.41600
2013-10-13  0.762000    0.000   8.890000    0.000   2.540000    1.270000    4.572000 …
Run Code Online (Sandbox Code Playgroud)

python statistics dataframe pandas

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

改变seaborn分布线的颜色

我想fit在 seaborn 包中为数组xy数据指定一行的颜色。相反,我能弄清楚的是如何更改内核密度函数的颜色和阴影。如何更改高斯拟合的颜色?即下面的线条应该是红色和蓝色。像"shade":True参数一样在函数中着色也很棒。

import seaborn as sns
sns.distplot(x,kde_kws={"shade":True}, kde=False, fit=stats.gamma, hist=None, color="red", label="label 1");
sns.distplot(y,kde_kws={"shade":True}, kde=False, fit=stats.gamma, hist=None, color="blue", label="label 2");
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python plot colors matplotlib seaborn

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

使用R中的grep(?)删除文本文件中的行

我有一个非常重复的文本文件,前几行看起来像这样:

Filename: 
ROI: red_1 [Red] 20 points

Basic Stats      Min         Max        Mean       Stdev
     Band 1 0.013282    0.133982    0.061581    0.034069
     Band 2 0.009866    0.112935    0.042688    0.026618
     Band 3 0.008304    0.037059    0.018434    0.007515
     Band 4 0.004726    0.040089    0.018490    0.009605

Histogram         DN       Npts   Total  Percent     Acc Pct
Band 1      0.013282          1       1   5.0000      5.0000
Bin=0.00047 0.013755          0       1   0.0000      5.0000
            0.014228          0       1   0.0000      5.0000
Run Code Online (Sandbox Code Playgroud)

..并持续一段时间,直到达到另一个ROI值,如下所示:

Stats for ROI: red_5 [Red] 20 points
Basic Stats      Min         Max        Mean       Stdev
     Band 1 0.030513    0.180980 …
Run Code Online (Sandbox Code Playgroud)

r dataframe data-cleaning

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

获取value_counts()作为字典的值

我很熟悉如何返回value_countspd.Series。但是,如何从字典的值中获取值计数?

假设我在字典中有以下元组L

L = {1: (13600, 14797),
     2: (14700, 14700),
     3: (14700, 10400),
     4: (14600, 17200),
     5: (13600, 14797),
     6: (14600, 17200),
     7: (14700, 10400),
     8: (14700, 10400),
     9: (12800, 14770)}
Run Code Online (Sandbox Code Playgroud)

我如何获得value_counts来自L这将是这样的:

(14700, 10400) 3
(13600, 14797) 2
(14600, 17200) 2
(14700, 14700) 1
(12800, 14770) 1
Run Code Online (Sandbox Code Playgroud)

到目前为止,这就是我所拥有的。但是,我认为字典键1-9妨碍了操作,因为出现错误list object is not callable.

list = [(k, v) for k, v in L.items()] 
S = set(L)
F = {}
for i …
Run Code Online (Sandbox Code Playgroud)

python counter dictionary

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

如何在 R 中配对并且不丢失对的项目的样本()

我有一个 x 和 y 地理坐标(30,000+ 个坐标)的数据框,看起来像points下面的示例矩阵。我想随机抽取这些样本,但这样我就不会丢失 x 和 y 坐标对。

例如,我知道我可以在xand 中获得 2 个项目y的随机样本,但是如何获得随机样本以便保留在一起的项目?换句话说,在我的矩阵 中points,一个实际点是一对 x 坐标(例如,第一项:-12.89),它与y列表中的第一项:18.275 一致。

有没有一种方法,我可以放在一起的项目中x,并y使得订单一座保存完好的元组类对象(我更蟒用户),然后采取使用随机样本sample()?谢谢。

# Make some pretend data
x<-c(-12.89,-15.35,-15.46,-41.17,45.32)
y<-c(18.275,11.370,18.342,18.305,18.301)
points<-cbind(x,y)
points

# Get a random sample:
# This is wrong because the x and y need to be considered together
c(sample(x, 2),
  sample(y, 2))

# This is also wrong because it treats each item in `points` separately …
Run Code Online (Sandbox Code Playgroud)

random tuples r sample matrix

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

Pandas:通过填充某个值来合并数据框中的两个字符串列

我有这个df:

import pandas as pd

df1 = pd.DataFrame({
  'Type': ['red', 'blue', 'red', 'red', 'blue'],
  'V1': ['No', 'No', 'No', 'Yes', 'No'],
  'V2': ['Yes', 'Yes', 'No', 'Yes', 'No'],
  'V3': ['Yes', 'No', 'No', 'Yes', 'No'],
  'V4': ['No', 'No', 'No', 'Yes', 'Yes']
})
Run Code Online (Sandbox Code Playgroud)

我想要一个如下所示的数据帧:

    Type    V1    V2    V3    V4   V3_4 
0   red     No    Yes   Yes   No   Yes
1   blue    No    Yes   No    No   No
2   red     No    No    No    No   No
3   red     Yes   Yes   Yes   Yes  Yes
4   blue    No    No …
Run Code Online (Sandbox Code Playgroud)

python string function dataframe pandas

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