小编ihs*_*sat的帖子

如何在R中的mutate函数中使用if else

我有一个DT_new包含4列的data.frame :

  1. 毕业(日期格式)
  2. 工作(日期格式)
  3. 已婚(日期格式)
  4. Jumlah(双格式)

样品:

 Graduated         Work      Married   Jumlah
2015-05-01   2015-05-02   2015-05-03       20
        NA   2015-05-02   2015-05-03       20
        NA           NA   2015-05-03       20
        NA   2015-05-02           NA       20  
Run Code Online (Sandbox Code Playgroud)

我需要Jumlah按日期汇总GraduatedWorkMarried

  • Graduated值不是时NA,使用日期Graduated
  • Graduated值为NA,使用Work或的 另一个值Married

格式化我想要的是:

     Dates   Total 
2015-05-01      10
2015-05-02      40
2015-05-03      30
Run Code Online (Sandbox Code Playgroud)

aggregate在R中尝试过group by,但只是按1列(分级)分组,例如:

DT_Totals = DT_Total %>%
  group_by(Graduated) %>%
  summarise(Total= sum(Jumlah)) %>%
  arrange(Graduated)
Run Code Online (Sandbox Code Playgroud)

我该如何处理我的问题?

r

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

为什么使用pandas qcut返回ValueError:Bin边必须是唯一的?

我有数据集:

recency;frequency;monetary
21;156;41879955
13;88;16850284
8;74;79150488
2;74;26733719
9;55;16162365
...;...;...
Run Code Online (Sandbox Code Playgroud)

详细的原始数据 - > http://pastebin.com/beiEeS80 和我投入DataFrame,这里是我的完整代码:

df = pd.DataFrame(datas, columns=['userid', 'recency', 'frequency', 'monetary'])
df['recency'] = df['recency'].astype(float)
df['frequency'] = df['frequency'].astype(float)
df['monetary'] = df['monetary'].astype(float)

df['recency'] = pd.qcut(df['recency'].values, 5).codes + 1
df['frequency'] = pd.qcut(df['frequency'].values, 5).codes + 1
df['monetary'] = pd.qcut(df['monetary'].values, 5).codes + 1
Run Code Online (Sandbox Code Playgroud)

但它的返回错误

df['frequency'] = pd.qcut(df['frequency'].values, 5).codes + 1
ValueError: Bin edges must be unique: array([   1.,    1.,    2.,    4.,    9.,  156.])
Run Code Online (Sandbox Code Playgroud)

怎么解决这个?

python pandas

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

如何将两个列表组合到python列表中?

比方说我有:

a = [10,14,16]

b = [0,1,2]

我想结合a,并b在一个列表中,如下图所示:

print c
[[10, 0], [14, 1], [16, 2]]
Run Code Online (Sandbox Code Playgroud)

我试图合并这两个列表:

a + b
[10, 14, 16, 0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

但它与我想要达到的目标不同.我怎么能用Python做到这一点?

python list python-2.7

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

如何在 Pandas python 中将值列转换为分位数?

我使用熊猫来分析我的数据,并执行:

df = pd.DataFrame(datas, columns=['userid', 'recency', 'frequency', 'monetary'])


print df
      userid  recency  frequency  monetary
0     47918        9         53  788778
1     48302       85         10  232323
2      8873        3         79  2323
3     63158       23         23  2323232
4       364       14         43  232323
5     45191        1         75  224455
6     21061        9         64  23367
7     41356       22         55  2346777
8     42455       14         30  23478
9     65460        3         16  2345
Run Code Online (Sandbox Code Playgroud)

我需要将 valuerecency frequencymonetaryvalue转换为 1-5 范围内的值。所以输出是

      userid  recency  frequency  monetary
0     47918        1 …
Run Code Online (Sandbox Code Playgroud)

python quantile pandas

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

标签 统计

python ×3

pandas ×2

list ×1

python-2.7 ×1

quantile ×1

r ×1