我有一个Pandas DataFrame,其中包含一个date列。该列的元素类型为pandas.tslib.Timestamp。
我想按日期对数据进行分组,但不包括更细粒度的时间戳信息(即。按日期分组,其中所有Feb 23, 2011都分组)。我知道如何用SQL来表达这一点,但是对于Pandas来说,这是非常新的。
做了非常类似的事情,但是我不理解代码,它使用datetime对象。
在中,我甚至不知道如何从Pandas时间戳对象中检索日期。我可以转换为datetime对象,但这似乎非常迂回。
根据请求,df.head()的输出
date show network time
Pandas窗口函数,例如rolling,工作得很好。然而,从SQL我知道,窗口也可以是PARTITIONED BY某个组。
如何在pandas中获取分组窗口?答:
df.groupby(['group']).rolling('10s').mean()
失败,出现以下错误:
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'MultiIndex'
如果使用df.rolling('10s',
我正在尝试使用Pandas评估Power Query/M以进行一些可重复的转换。到目前为止一切都很好,但我在Pandas中遇到了下面的场景,如果有人指出(我想)我做错了什么,我将非常感激。
我有一个DataFrame,它看起来像:
sales rep quarter result value
0 adam q1 target 3000
1 ben q1 target 3200
2 cal q1 target 2900
3 dan q1 target 340
在SQL中,我们可以在OLAP函数的帮助下按不同的键一次性计数,从而提高sql性能: select
B,
C,
D,
count(A) over (partition by B, C, D order by D) as by_BCD.
count(A) over (partition by B, C order by D) as by_BC,
count(A) over (partition by B order by D) as by_B,
count(A) over () as total,
from table; 我们可以在一次pandas数据帧扫描中做同样的事情,而不是按数据帧进
我从一个时刻表中创建了一个多索引熊猫系列,现在我想要阅读其中的数据。在我看到的所有示例中,本系列的列或级别都是命名的。然而,在我的系列文章中,情况并非如此。在这个多重索引中,第一级是日期,第二级是一天中的小时。数据列具有我想要读取的值。
从我的系列中获取我想要的数据的最简单的方法是什么?下面的代码应该是非常清楚的。
import pandas as pd
import numpy as np
n = 1000
t = pd.date_range(start ='2012-01-01', periods=n, freq='10T')
我要做的是将这段SQL代码复制到Python中: select column_1, column_2, column_3,
sum(column_4) as sum_column_4, sum(column_5) as sum_column_5
from df
group by 1,2,3; 换句话说,我需要制作这个数据框架: column_1 column_2 colunn_3 column_4 column_5
AA BB CC 5 3
AA BB CC
在使用熊猫的复杂链式方法中,其中一个步骤是将数据按列分组,然后计算一些指标。这是我想要实现的程序的一个简化例子。我在工作流程中有更多的任务,但一开始很不幸地失败了。
import pandas as pd
import numpy as np
data = pd.DataFrame({'Group':['A','A','A','B','B','B'],'first':[1,12,4,5,4,3],'last':[5,3,4,5,2,7,]})
da
这应该很简单。我想要的是根据函数的结果进行分组的能力,就像在SQL中一样,您可以按表达式进行分组:
SELECT substr(name, 1) as letter, COUNT(*) as count
FROM table
GROUP BY substr(name, 1)
这将计算以字母表中的每个字母开头的name列的行数。
我希望在python中也这样做,所以我假设我可以将一个函数传递给groupby。但是,这只会将索引列(第一列)传递给函数,例如0、1或2。
import pandas
# Return the first letter
def first_letter(row):
我在powerBI中连接了几个Outlook邮箱。目标是计算回复入站电子邮件所需的时间。到目前为止,我已经对数据进行了整形,使表看起来像这样:
Path Topic Sender To Inbound Outbound
Inbox Help Needed Customer Me 5/16/21 8:30AM null
Inbox\Completed New Issue Customer2
假设我有一个名为df的数据框架,如下所示:
id x y
1 10 A
2 12 B
3 10 B
4 4 C
5 9 A
6 15 A
7 6 B
现在我想将数据按y列分组,并得到每个组的2个最大值(x)的平均值,其结果如下
y
A (10+15)/2 = 12.5
B (12 + 10)/2 = 11
C 4
如果我试着用df.groupby('y')['x'].nlar
给定一个开始时间为新时间段(新工作班次)的数据帧,将截至下一时间段(工作班次)的所有销售额相加。 import pandas as pd
df_checkpoints = pd.DataFrame({'time':[1,5,10], 'shift':['Adam','Ben','Carl']})
df_sales = pd.DataFrame({'time':[2,6,7,9,15], 'soldCount':[1,2,3,4,5]})
# This is the wanted
我正在尝试使用groupby中的两个变量来计算多列的标准差。然而,我的代码抛出了一个错误,我很难找出它。 我正在使用https://www.shanelynn.ie/summarising-aggregation-and-grouping-data-in-python-pandas/作为指南。 以下是示例数据帧: Book Home Num Pointspread odds
A P -135 -2.5 -110.0
B P NaN -3 -101.0
B P NaN -3
我开始学习熊猫,我正在遵循问题,但无法得到适合我的解决方案,我得到了一个索引错误。这就是我的东西
from pandas import *
import pandas as pd
d = {'L1' : Series(['X','X','Z','X','Z','Y','Z','Y','Y',]),
'L2' : Series([1,2,1,3,2,1,3,2,3]),
'L3' : S