相关文章推荐
腼腆的柠檬  ·  python ...·  2 周前    · 
有情有义的大白菜  ·  python ...·  2 周前    · 
完美的馒头  ·  python QTreeWidget ...·  2 周前    · 
失眠的烤红薯  ·  python qt textBrowser ...·  1 周前    · 
难过的大熊猫  ·  group by ...·  1 年前    · 

1.3新生成一列sum_age_new 按照gender和is_good对age进行累加

df['sum_age_new'] = df.groupby(['gender','is_good'])['age'].cumsum()
print(df)

2.python中排序问题

2.1 按照年龄进行排序

df['rank'] = df['age'].rank()
df['rank_mean'] = df['age'].rank(method='average')
df['rank_min'] = df['age'].rank(method='min')
df['rank_max'] = df['age'].rank(method='max')
df['rank_first'] = df['age'].rank(method='first')
print(df)

根据不同的性别对年龄进行排序

df['rank_g'] = df.groupby(['gender'])['age'].rank()
print(df)

2.2在排序的过程中遇到两个数值相同,空置的排序情况,在这种条件下rank如何进行参数设置

首先排序过程中存在相同的数值时?

rank()函数参数设置

1. method : {‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}, default ‘average’ 主要用来当排序时存在相同值参数设置;

默认为average平均值:年龄为32的数值,排序应该为8,9取平均值则为8.5

min:排序中最小值,年龄排序中取值为8

max:排序中最大值,年龄排序中取值9

first:同样数值按照值出现的前后进行排序 5号性别为男的年龄排序为8,7号性别为女的排序为9

dense: like ‘min’, but rank always increases by 1 between groups 排序时当值相同时,相同的值为同一排名类似min值排序,后续值排名在此排名基础上加一

2. na_option : {‘keep’, ‘top’, ‘bottom’}, default ‘keep’  当排序数据中存在空值时,默认值设置为keep

How to rank NaN values:

  • keep: assign NaN rank to NaN values    默认空值不参与排序
  • top: assign smallest rank to NaN values if ascending    默认为升序时从空值为最小值排序
  • bottom: assign highest rank to NaN values if ascending 默认升序时 空置为
    df['rank'] = df['age'].rank(method='first')
    df['rank_k'] = df['age'].rank(method='first',na_option='keep')
    df['rank_t'] = df['age'].rank(method='first',na_option='top')
    df['rank_b'] = df['age'].rank(method='first',na_option='bottom')
    print(df)
data['rank'] = data.groupby(['Name_y'])['Salary'].rank(ascending=False,method='dense')
print(data)

3.对salary进行降序排序,对于排序中相同salary值按照emp_no的大小进行排序

在使用pandas时先按照emp_no和salary进行值的排序,然后再进行rank(method=‘dense’)排序

df = pd.DataFrame({'emp_no':[10001,10002,10003,10004,10005,10006,10007,10010,10009,10011],'salary':[88958,72527,43311,74057,94692,43311,88070,94409,94409,25828]})
print(df)
df['排序-1'] = df.sort_values(by=['emp_no','salary'])['salary'].rank(method='first',ascending=False)
dt = df.sort_values(by=['排序-1'])
print(dt)
df['排序-1'] = df['salary'].rank(method='dense',ascending=False)
dt = df.sort_values(by=['排序-1','emp_no'])
print(dt)
1.python 中分组统计1.1按性别统计出年龄最大,最小,平均值import pandas as pddf = pd.read_excel(r'./data.xlsx')print(df)ages = df.groupby(['gender'])['age']ages_min = ages.min()ages_max = ages.max()ages_mean = a... import pandas as pd df = pd.read_excel('product.xlsx',names=['product','score1','score2'],header=None) df = df.sort_values(by=['score1','score2'],ascending=[False,True]) #False表示降序 排序 df = df. group by('produc
https://pandas.pydata.org/docs/reference/api/pandas.Series. rank .html#pandas.Series. rank Series. rank (self: ~ FrameOrSeries, axis=0, method: str = 'average', numeric_only: Union[bool, NoneType] = None, na_option: str = 'keep', ascending: bool = True, pct: bo
result_file = './result/drug_ group _desc.csv' df = pd.read_csv(base_dire,engine=' python ',encoding='utf-8',usecols=['ADVICE_CONTENT']) #第一种方式使用size函数添加
你有一个字典或者实例的序列,然后你想根据某个特定的字段比如 date 来 分组 迭代访问。itertools. group by() 函数对于这样的数据 分组 操作非常实用。为了演示,假设你已经有了下列的字典列表: from operator import itemgetter from itertools import group by from collections import defaultdict rows = [ {'address': '5412 N CLARK', 'date': '07/0
2020年3月11日:更新到最新的snarkjs (这是对PySNARK原始版本的重写,仍可。) PySNARK允许您直接在 Python 3 编程zk-SNARK(又名可验证计算)。例如,以下代码运行SNARK程序以计算数字的立方,生成键材料,生成证明并验证它: import sys from pysnark.runtime import snark @snark def cube(x): return x*x*x print("The cube of", sys.argv[1], "is", cube(int(sys.argv[1]))) PySNARK可以使用或作为后端。 对于使用pysnark提供的PubVal数据类型(或使用@snark装饰器)执行的任何计算,该库都会跟踪该计算的 Rank -1约束系统。 计算完成后,将生成(或重复使用)用于计算的关 进行数据分析时, Group By 分组 统计是非常常用的操作,也是十分重要的操作之一。基本上大部分的数据分析都会用到该操作,本文将对 Python Group By 分组 统计操作进行讲解。 1. Group By过程 首先看看 分组 聚合的过程,主要包括拆分(split)、应用(Apply)和合并(Combine) 2.创建DataFrame import pandas as pd ipl_data = {...
在 Pandas 使用 group by 函数可以对数据进行 分组 。可以指定一个或多个列作为 分组 键,然后进行聚合操作。 如果要删除 分组 后重复的行,可以在 group by 函数后使用 drop_duplicates() 方法。 import pandas as pd df = pd.DataFrame({'A': ['foo', 'bar', 'baz'] * 3, 'B': [1, 2, 3] * 3, 'C': [4, 5, 6] * 3}) # 首先按 'A' 和 'B' 分组 group ed = df. group by(['A', 'B']).sum() # 删除 分组 后重复的行 group ed = group ed.drop_duplicates() 这将会返回一个新的 dataframe,里面没有重复行。