我想做的事groupby,shift而cumsum这似乎很琐碎的任务,但还是撞我的头在我得到的结果。有人可以告诉我我在做什么错。我在网上找到的所有结果都显示出我所做的相同或相同的变化。下面是我的实现。
temp = pd.DataFrame(data=[['a',1],['a',1],['a',1],['b',1],['b',1],['b',1],['c',1],['c',1]], columns=['ID','X'])
temp['transformed'] = temp.groupby('ID')['X'].cumsum().shift()
print(temp)
ID X transformed
0 a 1 NaN
1 a 1 1.0
2 a 1 2.0
3 b 1 3.0
4 b 1 1.0
5 b 1 2.0
6 c 1 3.0
7 c 1 1.0
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为实际或我正在寻找的如下:
ID X transformed
0 a 1 NaN
1 a 1 1.0
2 a 1 2.0
3 b 1 NaN
4 b 1 1.0
5 b 1 2.0
6 c …Run Code Online (Sandbox Code Playgroud) 我想让每个唯一值获得虚拟变量。想法是将数据框变成多标签目标。我该怎么做?
数据:
ID L2
A Firewall
A Security
B Communications
C Business
C Switches
Run Code Online (Sandbox Code Playgroud)
期望输出:
ID Firewall Security Communications Business Switches
A 1 1 0 0 0
B 0 0 1 0 0
C 0 0 0 1 1
Run Code Online (Sandbox Code Playgroud)
我试过,pd.pivot_table但它需要一个列来聚合。我也试过这个链接的答案,但它对值求和而不是仅仅变成二进制虚拟列。我将非常感谢您的帮助。非常感谢!
我最后一个问题的答案帮助我理解了dplyr n()。但我仍然无法应用于我试图解决的问题。所以,我在这里发布数据和实际问题。数据如下
finalCalledPartyNumber Call Day Call Date Block Answered Call Duration Opty ID Opty Created Date BC ID
19183598259 Monday 2016-12-05 12:26:46 Block 2(12:30 pm) 1 5 1234 <NA> <NA>
17135796188 Monday 2016-12-05 12:18:24 Block 2(12:30 pm) 1 16 <NA> <NA> 3456
19183598259 Monday 2016-12-05 15:43:33 Block 4(5:30 pm) 1 10 <NA> <NA> 4567
17135796188 Tuesday 2016-12-06 11:53:50 Block 2(12:30 pm) 1 85 <NA> <NA> 5566
19014741000 Tuesday 2016-12-06 12:00:11 Block 2(12:30 pm) 1 42 6789 <NA> <NA> …Run Code Online (Sandbox Code Playgroud) 我想编写一个存储过程,通过连接两个表来在表中插入数据.以下是我的尝试,但我收到了一个错误.
CREATE PROCEDURE [dbo].[stored_proc1]
AS
BEGIN
INSERT INTO [dbo].[IN_TABLE]
SELECT
l.col1, l.col2, l.col3, l.col4,
r.col1, r.col2
FROM
db2.dbo.table1 AS l
LEFT JOIN
dbo.[table2] AS r ON l.col1 = r.col2
WHERE
l.col4 >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), -7);
DELETE FROM dbo.[IN_TABLE]
WHERE col4 < DATEADD(dd, DATEDIFF(dd, 0, GETDATE()),-7);
END
GO
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
消息213,级别16,状态1,过程store_proc1,行18 [批次开始行9]
列名称或提供的值的数量与表定义不匹配.
我在搜索我的任务的解决方案时遇到的所有示例都使用参数并通过将它们设置为特定值来插入它们,这对我没有帮助,因为我想插入一个SELECT语句.
我非常感谢你的帮助.先感谢您.
我想计算的百分比Profit由YEAR这是一个相当简单的任务,但不知何故,我得到NA.我已经检查了之前提出的相同问题,但我无法理解为什么会这样NA.数据如下:
> df_vertical_growth
YEAR VERTICAL Profit pct_change
1 2017 AGRICULTURE 0 NA
2 2016 AGRICULTURE 2053358 NA
3 2015 AGRICULTURE 0 NA
4 2014 AGRICULTURE 2370747 NA
5 2013 AGRICULTURE 4066693 NA
6 2017 COMMUNICATION 0 NA
7 2016 COMMUNICATION 1680074 NA
8 2015 COMMUNICATION 1322470 NA
9 2014 COMMUNICATION 1460133 NA
10 2013 COMMUNICATION 1529863 NA
11 2017 CONSTRUCTION 0 NA
12 2016 CONSTRUCTION 0 NA
13 2015 CONSTRUCTION 0 NA …Run Code Online (Sandbox Code Playgroud)