我有一个包含4列的pandas数据帧- A、B、C、D和E。我想按A列创建组,然后找到B列和C列的最大值,然后用D中的相应值填充E,如下面的示例所示。 我的预期输出: column A column B column C column D Column E
AA 1 a 12 15
AA 2 d 13 15
AA 3 b 14 15
AA
我知道如何按列值过滤数据:
import pandas as pd
import numpy as np
from numpy.random import randn
np.random.seed(101)
df = pd.DataFrame(randn(5,4),index='A B C D E'.split(),columns='W X Y Z'.split())
print(df)
# show only rows where 'W' is positive
# here, the row for 'C' will be d
我是pandas的新手,我想创建一个包含分组和过滤数据的新数据集。现在,我的数据集包含两列,如下所示(第一列包含A、B或C,第二列包含值): A 1
A 2
A 3
A 4
B 1
B 2
B 3
C 4 -->现在我想按第一列(A,B,C)的键进行分组,并且只显示键,其中值1和2存在。这样我的新数据集看起来就像: A 1
A 2
B 1
B 2 到目前为止,我只能打印所有内容,但我不知道如何过滤: for name, group in data.groupby('keys'):
print(name)
print(group) 我
在使用熊猫的复杂链式方法中,其中一个步骤是将数据按列分组,然后计算一些指标。这是我想要实现的程序的一个简化例子。我在工作流程中有更多的任务,但一开始很不幸地失败了。
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
如何创建具有按列分组的最小值的新数据框。 例如,此df: df <- read.table(header = TRUE, text = 'Gene Value
A 12
A 10
B 3
B 0
B 6
C 1
D 0
D 4') 现在使用: test <- setDT(df)[, .SD[which.min(Value)], by=Gene] 我明白了: > test
Gene Value
1: A 10
2: B 0
3: C
我需要数一数,有多少支队伍只有一个相关城市,至少有一名员工。我的数据集有许多列,但与本例相关的列如下:
Team City Employees
A Shanghai 3
A Beijing 5
B Helsinki 1
B Beijing 0
C Berlin 10
D Shanghai 5
D Berlin 6
在上面的示例中,这个计数将是2 (B和C),并且我成功地创建了一个度量来计算每个team使用了多少关联的cities:
# of Cities =
假设我有一个名为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
我需要在DataFrameGroupBy对象上使用slice。 例如,假设有包含A-Z列的DataFrame,如果我想使用列A-C,我将使用.loc[:, 'A':'C'],但是当我使用DataFrameGroupBy时,我不能使用切片,所以我必须编写[['A', 'B', 'C']] 看看这里: from numpy import around
from numpy.random import uniform
from pandas import DataFrame
from string import asc
有一个pandas数据帧,需要在group内的列中找到低于某个值的最后一个值。
dataframe is as following:
region year month signal
A 2010 2 20
A 2010 3 32
A 2010 4 24
A 2010 6 50
.......
A 2011 1
有没有办法告诉pandas不要按字符列索引?我的代码是
A=['a','b','c']
B=[1,2,3]
pd.DataFrame(A,B)
0
1 a
2 b
3 c
我想要的是两列,这样我就可以按A列分组了,我该怎么做呢?我可以这样做,但我想跳过列名,以获得尽可能多的性能。
pd.DataFrame({'A':A,'B':B})
A B
0 a 1
1 b 2
2 c 3
我已经创建了一个SSRS报告,它是按日期和时间列分组的。日期作为父组,时间作为子组。此外,我还从select语句的某一列中提取了日期和时间,如下所示:
CONVERT(VARCHAR(10),DetectionTime,103) AS Detection_Date,
CONVERT(TIME(0), DetectionTime) AS Detection_Time
此外,我创建了参数,并使用此链接中的以下代码找到了给定字段中的唯一值,并按照上述步骤从给定参数中删除了重复项:-
Public Shared Function RemoveDuplicates(parameter As Param
在Pandas中,如何在同一个数据集中进行多步/顺序聚合?好像每个步骤都是下一个步骤的“子查询”。
在SQL中,我可以这样想:
SELECT x.A, COUNT(x.B) as B_COUNT, SUM(x.C_SUM) as C_SUM
FROM (
SELECT df.A, df.B, SUM(df.C) as C_SUM
FROM df
GROUP BY df.A, df.B
) x
GROUP BY x.A
在Python3.4和Pandas0.19.2中工作,我有这样一个数据框架:
import pandas
import numpy
numpy.rand