这应该很简单。我想要的是根据函数的结果进行分组的能力,就像在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):
是否有任何方法按数据按唯一的month分组,但我也需要选择no_inv和date_inv列。
Mysql查询:
SELECT no_inv, date_inv, SUM(total_unpaid) AS unpaid, SUM(total_paid) AS paid
FROM invoice
GROUP BY MONTH(date_inv)
LIMIT 3
我有一个包含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
如何使用'count‘列计算所有列的平均值。我在下面的代码中使用随机生成的值创建了一个数据帧。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10,10)*100/10).astype(int)
df
output:
A B C D E F G H I J
0 4 3 2 8 5 0 9 9 0 5
1 1 5 8 0 5 9 8 3 9 1
2 9
在熊猫中,我想按两栏分组,然后做一次计数。在此之后,我想删除我分组的列,并计算计数的平均值。我知道如何在sql中轻松地做到这一点,但是在Pandas中遇到了一些问题。我不能删除我以前分组的一列。有人知道如何做得好吗?
(只要关心最终结果,如果有更好的结果,程序就不必是这样的)
例:
Name, City
Anna, New York
Carl, New York
Carl, New York
Steven, London
Carl, London
Anna, Paris
Carl, Paris
Carl, Paris
按“名称”和“城市”分组,然后计数:
Name, City, Count
A
当我尝试按特定列进行groupby和sum by dataframe时,我会得到以下错误。
ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional
我检查了其他解决方案,这不是双列名称标题问题。
请参阅下面的df3,除最后两列外,我希望对所有列进行分组,我想要sum()。
dfs head显示,如果我只是按列名称分组,它可以正常工作,但不适用于iloc,因为我知道iloc是我想要分组的正确公式。
我需要使用ILOC作为最终的dataframe将
我有这个数据集
age salary gender
44 3000 M
32 4555 F
45 6000 M
50 4200 F
43 5000 F
23 1700 M
我想循环每一列并使用数字按性别获得年龄/薪资组的最大值/最小值,我这样做了:
import pandas as pd
import numby as np
data = pd.read_excel("file")
var = ["age","salary","gender"]
dat = data[var]
column_li
我在显示这个查询和按查询分组时遇到了一些问题。不管我用什么方法处理这个组,我都会继续犯同样的错误。任何帮助都是非常感谢的。
当前正在获取此错误:
错误: SELECT list的表达式#2不按子句分组,包含非聚合列“myData.stateName”,该列在功能上不依赖于逐个子句中的列;这与sql_mode=only_full_group_by不兼容
这里是我的sql:
SELECT
stateAbv,
stateName,
'' AS cityName,
count(*) AS state_count
from
myData
GROUP BY sta
我试图构建一个SQL查询,其中我按1列分组,但也包括来自每个组中任意记录的其他列的值。所以,就像
SELECT BoxNo
FROM MuffinData
WHERE FrostingTimeApplied >= CONVERT(date, GETDATE())
GROUP BY BoxNo
但是在结果中包括来自MuffinType、FrostingType列的一些值(我知道每个框中只有一个MuffinType和FrostingType值)。
我正在尝试写一个程序,它将把所有的字形组合在一个列表中,并且输出必须按字母顺序排序。我已经有了一个按字母顺序对输入进行排序的程序,它使用heapsort在O(nlog(n))时间内完成。我的程序也对字谜进行分组,但是它太慢了。我相信使用散列将提供一个有效的算法,但不太确定如何实现它。有没有人对完成这项任务的有效算法有任何建议?
例如:
输入:
eat tea tan ate nat bat
输出:
ate eat tea
bat
nat tan
在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