(1)单列
mysql:select * from uds.amz_daily_sales where purchase_date>='2021-04-01' order by asin desc;
pandas:
data.sort_values(by='asin',ascending=False);
data.sort_values(by='asin',ascending=False,inplace=True);
data.sort_values(by='asin',ascending=False,na_position='first');  #NAN值放在首行
(2)多列
mysql:select * from uds.amz_daily_sales where purchase_date>='2021-04-01'  order by sales_channel_id,asin desc, sales_channel asc , purchase_date asc;
pandas:data.sort_values(by=['sales_channel_id','asin','sales_channel','purchase_date'],ascending=[True,False,True,True]);
#去除重复的行
df.drop_duplicates()
#按单列去重
df.drop_duplicates(subset=['brand'],keep='last', inplace=True)
#按多列去重
df.drop_duplicates(subset=['brand', 'style'], keep='last', inplace=True)
#实现按qty排序
data.sort_values(by='qty',axis=0,ascending=False)
#实现按asin与qty排序,降序
data.sort_values(by=['asin','qty'],axis=0,ascending=False)
#依据第一列排序,并将该列空值放在首位
df.sort_values(by=['col1'],na_position='first')
#依据第二、三列,数值降序排序
df.sort_values(by=['col2','col3'],ascending=False)
df.sort_values(by=['col2','col3'],ascending=[False,True])
#根据第一列中数值排序,按降序排列,并替换原数据
df.sort_values(by=['col1'],ascending=False,inplace=True,na_position='first')

4.分组排序

df = pd.DataFrame(
{'brand': ['Yum Yum', 'Yum Yum','Yum Yum', 'Yum Yum','Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie','Indomie', 'Indomie', 'Indomie']
,'style': ['cup1', 'cup2', 'cup1','cup1', 'cup2', 'cup1', 'pack', 'pack','pack','back','back','back']
,'rating': [4, 4, 2, 1, 6, 7 ,10, 10, 17, 15, 5, 9]
,'orders': [10, 12, 22, 21, 16, 71 ,110, 210, 117, 215, 15, 99]
#1 按单列分组再按单列排序号
#按rating升序排列
df['ranking'] = df['rating'].groupby(df['brand']).rank(ascending=False) 
#按rating降序排列,method='first'当组内rating有相同值时,早出现的那个排序在前
df['ranking'] = df['rating'].groupby(df['brand']).rank(ascending=False,method='first') 
按单列分组再按多列排序号
df.sort_values(by=['brand','rating'],ascending=[True,False],inplace=True)
df['ranking'] = df['rating'].groupby(df['brand']).rank(ascending=False,method='first') 
#2.按多列分组再按单列排序号
df2 = pd.DataFrame()
for name,group in df.groupby(['brand','style']):
        group['ranking'] = group['rating'].rank(ascending=False,method='first')
        print(group)
        df2 = pd.concat([df2,group],axis=0)
按多列分组再按多列排序号
df2 = pd.DataFrame()
for name,group in df.groupby(['brand','style']):
        group.sort_values(by=['rating','orders'],ascending=[False,False],inplace=True)
        group['ranking'] = group['rating'].rank(ascending=False,method='first')
        print(group)
        df2 = pd.concat([df2,group],axis=0)
#3.按多列分组再按单列排序号 
df['gp'] = df['brand']+df['style']
df['ranking'] = df['rating'].groupby(df['gp']).rank(ascending=False,method='first') 
header=['brand','style', 'rating','ranking']
df=df[header]
按多列分组再按多列排序号
df['gp'] = df['brand']+df['style']
df.sort_values(by=['gp','rating','orders'],ascending=[True,False,False],inplace=True)
df['ranking'] = df['rating'].groupby(df['gp']).rank(ascending=False,method='first') 
header=['brand','style', 'rating','ranking','orders']
df=df[header]

5.vs mysql

(1)求表行数:df.shape
(2)求某列值去重后的行数:
#1 去重后求行数
df.drop_duplicates(subset=['brand'],inplace=True)
df.shape
#2 groupby后求行数
len(df.groupby(['brand','style']))
(3)分组排序取前2条
df['gp'] = df['brand']+df['style']
df.sort_values(['rating', 'orders'], ascending=[False, False]).groupby('gp').head(2)

6.分组统计之频数

(1) 统计df中brand列各值的出现次数
df['brand'].value_counts() #返回series
(2) 统计df中brand与style两列组合值出现次数
df['style'].groupby(df['brand']).value_counts()
准备dataset:import pandas as pdsql="select * from uds.amz_daily_sales where purchase_date>='2021-04-01' "data=pd.read_sql(sql=sql,con=db)1.排序(1)单列mysql:select * fromuds.amz_daily_saleswhere purchase_date>='2021-04-01' order b...
烧瓶熊猫数据框 简单的Flask项目,可将熊猫数据框加载到数据库中并在页面上显示信息。 Flask Pandas Dataframe是一个one-file项目,可以帮助初学者了解一些Flask基本概念: 创建一个简单的Flask 下载公共DF 创建一个SQLite数据库和一个表来保存信息 使用新的custom command熊猫加载到数据库中 在浏览器中可视化数据 $ # Clone sources $ git clone https://github.com/app-generator/flask-pandas-dataframe.git $ cd flask-pandas-dataframe $ # Virtualenv modules installation (Unix based systems) $ virtualenv env $ source env/bin/
文章目录1. 生成dataframe2. 读取数据3. 增加:增加一:增加一行:4. 删除:5. 更新:6. 显示:7. 筛选:7. 数据空处理:8. 数据连接:9. 其它:   总结一些python数据处理过程中常用的方法,我一般喜欢用dataframe做数据处理,所以一般会尽量转成pandasdataframe格式。 1. 生成dataframe pd.dataframe(list, c...
通过带有标签的和索引,Pandas 使我们可以以一种所有人都能理解的方式来处理数据。它可以让我们毫不费力地从诸如 csv 类型的文件中导入数据。我们可以用它快速地对数据进行复杂的转换和过滤等操作。 pandas和 Numpy、Matplotlib 一起构成了一个 Python 数据探索和分析的强大基础。Scipy是同类型的库,感兴趣的可以进行了解。 本文记录和收集积累pandas的用法。 导入 ...
本篇文章主要介绍了Python数据分析Pandas Dataframe排序去重操作: 1、DataFrame排序分为两种,一种是对索引进行排序,另一种是对值进行排序; 2、DataFrame去重主要针对单或多中的完全重复的项进行处理 一、Dataframe排序 1. 索引的排序 DataFrame 提供了sort_index()方法来进行索引的排序,主要考虑以下几个可选输入项:
可以使用 value_counts 函数来统计每个不同数据在数据中出现的次数。 例如,假设有一个名为 df 的 DataFrame,其中包含一名为 'col'。 要统计 'col' 中各个不同数据的出现次数,可以使用以下代码: counts = df['col'].value_counts() 此代码将返回一个由各个数据和它们在 'col' 中出现的次数组成的 Series。 例如,假设...
方法一、主要思路: 1. 采用drop_duplicates对数据去两次重,一次将重复数据保留一个(keep='first),另一次将重复数据全部去除(keep=False); 2. 合并两者,并去重,得到重复的字段; 3、由重复的字段,得到原数据的重复所有数据,并进行排序,便于比较数据的异同; df = pd.DataFrame({ 'group': [1, 1, 2, 3, 3, 3, 4], 'param': ['a', 'a', 'b', np.nan, 'a', 'a', np.nan] print(df) # group param # 0 1 a
Pandas 中使用 groupby 函数可以对数据进行分组。可以指定一个或多个作为分组键,然后进行聚合操作。 如果要删除分组后重复的行,可以在 groupby 函数后使用 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' 分组 grouped = df.groupby(['A', 'B']).sum() # 删除分组后重复的行 grouped = grouped.drop_duplicates() 这将会返回一个新的 dataframe,里面没有重复行。