小编tj *_*ge 的帖子

Pandas 将每月数据重新采样为组内每周数据并拆分值

我有一个数据框,如下:

ID Date     Volume Sales
1  2020-02   10     4
1  2020-03   8      6
2  2020-02   6      8
2  2020-03   4      10
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以使用重采样将其转换为每周数据?将销量和销量列除以该月的周数?

我已经开始了我的流程,代码如下:

import pandas as pd
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index('date')
grouped = df.groupby('ID').resmaple('W').ffill().reset_index() 
print(grouped)
Run Code Online (Sandbox Code Playgroud)

执行此步骤后,我收到错误消息:无法插入 ID,已存在

还有一个代码可用于查找一个月中的周数,以便将销量和销售额列除以该月中的周数。

预期输出是:

ID      Volume  Sales      Weeks
0   1      2.5    1.0     2020-02-02
0   1      2.5    1.0     2020-02-09
0   1      2.5    1.0     2020-02-16
0   1      2.5    1.0     2020-02-23
1   1      1.6    1.2     2020-03-01
1   1      1.6    1.2     2020-03-08
1   1      1.6    1.2     2020-03-15 …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

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

使用排名函数(或其他函数)PYTHON 打破平局

我有以下数据框:

ID Name    Weight Score  
1  Amazon    2    11     
1  Apple     4    10     
1  Netflix   1    10     
2  Amazon    2    8      
2  Apple     4    8      
2  Netflix   1    5     
Run Code Online (Sandbox Code Playgroud)

目前我有一个代码,如下所示

#add weight and score column
df['Rank'] = df['Weight'] + df['Score']
#create score rank on ID column
df['Score_Rank'] = df.groupby('ID')['Rank'].rank("first", ascending = False) 
Run Code Online (Sandbox Code Playgroud)

这段代码并没有给我我想要的东西。

我想在分数上排名第一,不包括权重。然后通过添加权重列来打破排名中的任何平局。如果添加权重列后还有更多平局,则排名将通过随机选择。

我认为 if 语句可以在这种情况下工作,只是不确定如何工作。

预期输出:

ID Name    Weight Score  Score_Rank
1  Amazon    2    11     1
1  Apple     4    10     2
1  Netflix   1    10     3
2  Amazon …
Run Code Online (Sandbox Code Playgroud)

python numpy rank dataframe pandas

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

标准化列:总和为 1

我有一个数据框:

  Time   Weight 
   1       4 
   2       2
   3       1
   4       7
Run Code Online (Sandbox Code Playgroud)

如何标准化权重列,使权重列中的值之和等于 1 ?

python numpy pandas

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

根据 SQL 中设置的规则过滤列中的行

我是 SQL 新手,我想根据设置的规则过滤列上的值

Group    ID
1      09239820
2      2872498938
2      1267
3      23219823983
3      267839236
4      33287442
Run Code Online (Sandbox Code Playgroud)

我想用字母替换 ID 列中的第 1 个、第 2 个和第 4 个数字

Replace 1st with N
Replace 2nd with X
Replace 4TH with D 
Run Code Online (Sandbox Code Playgroud)

预期输出:

Group    ID
 1      NX2D9820
 2      NX7D498938
 2      NX6D
 3      NX2D9823983
 3      NX7D39236
 4      NX2D7442
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

根据设定的规则过滤列中的值

我有一个数据框

  Group    ID
   1      09239820
   2      2872498938
   2      1267
   3      23219823983
   3      267839236
   4      33287442
Run Code Online (Sandbox Code Playgroud)

我想用字母替换 ID 列中的第 1 个、第 2 个和第 4 个数字

   Replace 1st with N
   Replace 2nd with X
   Replace 4TH with D 
Run Code Online (Sandbox Code Playgroud)

预期输出:

    Group    ID
     1      NX2D9820
     2      NX7D498938
     2      NX6D
     3      NX2D9823983
     3      NX7D39236
     4      NX2D7442
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

标签 统计

numpy ×4

pandas ×4

python ×4

dataframe ×2

mysql ×1

rank ×1

sql ×1