我试图找出如何通过在新列上创建百分比和求和来聚合Pandas数据框架中的组。
例如,在下面的数据框架中,我有A、B、C和D列,我想按A中的组进行聚合,而C应该是(频率'1‘除以不缺失值的频率)的一个百分比,而D应该是不缺失值的总和。
例如,对于“foo”组,生成的数据框架应该是
A B C D
foo 1.333 4
我可以在这里和那里做一些单独的部分,但不确定如何编译成一个连贯的脚本:
import pandas
from pandas import DataFrame
import numpy as np
df = DataFrame
在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
假设我有以下数据帧:
A B C D
0 foo one 1 10
1 bar one 2 20
2 foo two 3 30
3 bar one 4 40
4 foo two 5 50
5 bar two 6 60
6 foo one 7 70
7 foo two 8 80
现在我可以按第一列进行分组:grouped = df.groupby('A')。结果,我得到了以下DataFrameGroupBy对象:
A B C
我有这样的数据:
Name one two
John A 20
John P 30
Alex B 40
David C 50
Harry A 60
Harry P 40
我想添加那些A和P同时出现在特定名称中的行,例如
Name one two
John A+P 50
Alex B 40
David C 50
Harry A+P 100
我尝试了在sum中使用pandas中的逐行函数,但是没有得到所需的输出。请帮帮我!
我正在尝试向Pandas GroupBy DataFrame中添加一个列。新列(E)是列(C)上具有相同关键字(A,B)的值的总和,.This关键字由数据帧(A,B)的另外两列形成。
This is my Dataframe
A B C D
0 foo one 1 15
1 bar one 2 10
2 foo two 4 20
3 bar three 4 5
4 foo two 5 6
5 bar two 6 9
6 foo one 7 8
7
假设我下面有一个数据帧。
a b c
0 one two three
1 three one two
我想使第0行和第1行被视为相同的列表?或者其他东西,因为两行都包含“一”、“二”、“三”,尽管顺序不同。
我是否应该创建一个新列来存储a、b、c列中的所有字符串,
a b c d
0 one two three one two three
1 three one two three
假设我有一个这样的数据帧: cluster A B C
a 1 2 3
a 10 20 30
a 100 200 300
b 4 5 6
b 40 50 60
b 400 500 600
c 7 8 9
c 70 80 90
c 700 800 900 我想首先按集群对数据帧进行分组,然后计算A列和B列的逐值平均值,并计算各组中C列的逐值总和。 预期结果: clu
假设我有以下数据框架df1
A B C D
0 foo one 1 0
1 bar two 2 1
2 foo two 3 0
3 bar two 4 1
4 foo two 5 0
5 bar two 6 1
6 foo one 7 0
7 foo two 8 1
我想把它变成像这样的dataframe df2:
A B C D
foo [one,two] [1,3,5,7,8] 0
bar [