当前位置: 首页 > news >正文

进入外国网站的方法哪个公司的卡网络最好

进入外国网站的方法,哪个公司的卡网络最好,留手机号广告,开网络公司做网站挣钱么百日筑基篇——Pandas学习三(pyhton入门八) 文章目录 前言一、数据排序二、字符串处理三、数据合并方法1. merge方法2. concat方法 四、分组数据统计五、数据重塑1. stack2. pivot 总结 前言 上一篇文章介绍了一下pandas库中的一些函数,而本…

百日筑基篇——Pandas学习三(pyhton入门八)

文章目录

  • 前言
  • 一、数据排序
  • 二、字符串处理
  • 三、数据合并方法
    • 1. merge方法
    • 2. concat方法
  • 四、分组数据统计
  • 五、数据重塑
    • 1. stack
    • 2. pivot
  • 总结


前言

上一篇文章介绍了一下pandas库中的一些函数,而本章则继续介绍库中的函数在数据处理中的应用。

一、数据排序

运用sort_values方法,

import pandas as pdpath = r"C:\Users\王浩天\Desktop\beijing_tianqi_2018.csv"
df = pd.read_csv(path)
df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype("int32")
df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype("int32")print(df.head(4))
#Series的排序
print(df["bWendu"].sort_values(ascending=True,inplace=False))
#DataFrame的排序
df1 = df.sort_values(by=["aqiLevel","bWendu"],ascending=[True,False],inplace=False)
print(df1.head(6))ymd  bWendu  yWendu  tianqi fengxiang fengli  aqi aqiInfo  aqiLevel
178  2018-06-28      35      24    多云~晴        北风   1-2331
149  2018-05-30      33      18       晴        西风   1-2461
206  2018-07-26      33      25  多云~雷阵雨       东北风   1-2401
158  2018-06-08      32      19  多云~雷阵雨       西南风   1-2431
205  2018-07-25      32      25      多云        北风   1-2281
226  2018-08-15      32      24      多云       东北风   3-4331

在数据框的排序中,sort_values()函数的参数"by"用来指定根据排序的列名,“ascending” 参数则填布尔值或由布尔值形成的列表,用来指定是升序还是降序 ,且与"by"一一对应。

列如,在上述代码中,是先根据"aqiLevel"升序排序,再在此基础上按"bWendu"来降序排序。

二、字符串处理

使用 .str方法,获取Series的str属性,以便在属性上调用所需函数。


#使用str的startswith 、contains 等得到bool的Series,可以用来做条件查询
#例如,提取出六月份的数据
condition = df["ymd"].str.startswith("2018-06")
print(df.loc[condition,:])#多次str处理,只展示月份
df1["ymd"]=df1["ymd"].str.replace("-","").str[4:6]
print(df1.head(3))ymd  bWendu  yWendu  tianqi fengxiang fengli  aqi aqiInfo  aqiLevel
178  06      35      24    多云~晴        北风   1-2331
149  05      33      18       晴        西风   1-2461
206  07      33      25  多云~雷阵雨       东北风   1-2401#使用split对ymd进行拆分为列表
def func(df):year,month,day = df["ymd"].split("-")return f"{year}{month}{day}日"
df["日期"] = df.apply(func,axis=1)
print(df.head(3))ymd  bWendu  yWendu tianqi  ... aqi aqiInfo  aqiLevel           日期
0  2018-01-01       3      -6~多云  ...  592  201801011  2018-01-02       2      -5~多云  ...  491  201801022  2018-01-03       2      -5     多云  ...  281  20180103#若要将年月日去掉,可使用正则表达式
df["日期"]=df["日期"].str.replace("[年月日]","",regex = True)
print(df.head(2))

三、数据合并方法

1. merge方法

根据一列或多列的值将两个DataFrame对象按行或列合并到一起


import pandas as pddf1 = pd.DataFrame({'学号': ['A0', 'A1', 'A2', 'A3'],'姓名': ['B0', 'B1', 'B2', 'B3'],'学生': ['K0', 'K1', 'K2', 'K3']})df2 = pd.DataFrame({'成绩': ['C0', 'C1', 'C2', 'C3'],'导师': ['D0', 'D1', 'D2', 'D3'],'学生': ['K0', 'K1', 'K2', 'K3']})print(df1)
print(df2)
df_merge = pd.merge(df1,df2,on="学生")
print(df_merge)学号  姓名  学生  成绩  导师
0  A0  B0  K0  C0  D0
1  A1  B1  K1  C1  D1
2  A2  B2  K2  C2  D2
3  A3  B3  K3  C3  D3

笔记如下:
在这里插入图片描述

2. concat方法

用于按行或列将多个DataFrame对象连接到一起。它可以用于沿着行或列轴将DataFrame对象堆叠在一起

import pandas as pddf1 = pd.read_csv(r"D:\python\PycharmProjects\pythonProject1\pachou\result_dir\yaxibao0.csv",encoding="utf-8")
df2 = pd.read_csv(r"D:\python\PycharmProjects\pythonProject1\pachou\result_dir\yaxibao1.csv",encoding="utf-8")
df1 = pd.DataFrame(df1)
df2 = pd.DataFrame(df2)
#print(df1)
#print(df2)
DF= pd.concat([df1,df2],axis=0)  #默认按行合并
print(DF)AA_ID  yaxibao
0    LaggChr1G00000010.1     chlo
1    LaggChr1G00000020.1     cyto
2    LaggChr1G00000030.1     nucl
3    LaggChr1G00000040.1     nucl
4    LaggChr1G00000050.1     mito
..                   ...      ...
533  LaggChr1G00010360.1     nucl
534  LaggChr1G00010370.1     cyto
535  LaggChr1G00010380.1     cyto
536  LaggChr1G00010390.1     chlo
537  LaggChr1G00010400.1     plas[1040 rows x 2 columns]

笔记如下:

在这里插入图片描述

四、分组数据统计

主要运用groupby方法,通常与agg()方法联用。也可以自定义方法,并使用apply应用于数据框

import numpy as np
df["ymd"] = df["ymd"].str[:7]
print(df.head(3)ymd  bWendu  yWendu tianqi fengxiang fengli  aqi aqiInfo  aqiLevel
0  2018-01       3      -6~多云       东北风   1-2592
1  2018-01       2      -5~多云       东北风   1-2491
2  2018-01       2      -5     多云        北风   1-2281#可传入多个分组依据列;as_index=False ,表示不使分组列变为索引,后面的agg函数,传入字典可对不同的列使用指定的聚合方法
print(df.groupby(["fengxiang","ymd"],as_index=False).agg({"bWendu":np.max,"yWendu": np.min,"aqi": np.mean}))fengxiang      ymd  bWendu  yWendu         aqi
0        东北风  2018-01       3     -11   45.200000
1        东北风  2018-02      10      -4   45.000000
2        东北风  2018-03      15      -4  141.666667
3        东北风  2018-04      19       1   56.200000
4        东北风  2018-05      25      13  121.000000
..       ...      ...     ...     ...         ...
68       西南风  2018-12       2      -8   78.000000
69        西风  2018-02       8      -4   78.000000
70        西风  2018-05      33      10   74.500000
71        西风  2018-07      27      23   28.000000
72        西风  2018-10      21       7   77.000000df4 = df[["ymd","bWendu","yWendu","aqi","aqiLevel"]]
print(df4.groupby("ymd").agg([np.sum,np.mean,np.std]))
print(df4.groupby("ymd").agg({"bWendu":np.max,"yWendu": np.min,"aqi": np.mean}))#使用自定义方法
def guiyihua(df):df["bWendu_new"] = df["bWendu"].apply(lambda x: (x - df["bWendu"].min())/ (df["bWendu"].max() - df["bWendu"].min()))return df
print(df.groupby("ymd").apply(guiyihua))

五、数据重塑

这里是引用

1. stack

stack函数用于将数据框的列转换为行,从而生成一个新的数据框
它会将数据框的列标签转换为新的索引层级,并将对应的值放入新的列中。这个过程被称为"堆叠"
unstack是与stack相反的操作,用于将行索引转换为列。

#print(df.dtypes)
df["ymd"] = pd.to_datetime(df["ymd"])
#print(df.dtypes)
#根据月份分组
df_group = df.groupby([df["ymd"].dt.month,"fengxiang"])["bWendu"].agg(pv = np.max)
print(df_group)pv
ymd fengxiang    
1   东北风         3东南风         2东风          3北风          2南风          7
...            ..
11  西南风        14
12  东北风         9东南风         7西北风        10西南风         2[73 rows x 1 columns]#将行索引转化为列
df_stack = df_group.unstack()
print(df_stack)pv                                          
fengxiang   东北风   东南风    东风    北风    南风   西北风   西南风    西风
ymd                                                      
1           3.0   2.0   3.0   2.0   7.0   6.0   5.0   NaN
2          10.0   NaN   7.0   6.0   8.0   5.0  12.0   8.0
3          15.0  14.0  25.0  18.0  27.0   NaN  25.0   NaN
4          19.0  26.0   NaN  26.0  30.0  26.0  27.0   NaN
5          25.0  28.0  29.0  25.0  35.0  31.0  32.0  33.0
6          37.0  37.0  36.0  35.0  37.0   NaN  38.0   NaN
7          33.0  37.0  32.0  32.0  35.0   NaN  35.0  27.0
8          32.0  35.0  35.0  32.0  36.0   NaN  28.0   NaN
9           NaN   NaN   NaN  30.0  29.0  27.0  31.0   NaN
10         17.0   NaN   NaN  25.0  25.0  24.0  19.0  21.0
11          8.0  13.0   NaN  15.0  18.0  11.0  14.0   NaN
12          9.0   7.0   NaN   NaN   NaN  10.0   2.0   NaN#将列索引转换为行
ymd  fengxiang    
1    东北风        pv     3东南风        pv     2东风         pv     3北风         pv     2南风         pv     7..
11   西南风        pv    14
12   东北风        pv     9东南风        pv     7西北风        pv    10西南风        pv     2
Length: 73, dtype: int32

2. pivot

pivot函数会重新安排数据框的行和列,使之对应于新的行和列标签。这个过程被称为"旋转"


import pandas as pd# 创建一个简单的数据框
data = {'Name': ['wht', 'xingshi'],'Subject': 'Maths','Score': [90, 85]}
df = pd.DataFrame(data)
print(df)Name Subject  Score
0      wht   Maths     90
1  xingshi   Maths     85# 使用pivot函数进行数据重塑
pivoted_df = df.pivot(index='Name', columns='Subject', values='Score')# 打印重塑后的数据框
print(pivoted_df)
Subject  Maths
Name          
wht         90
xingshi     85

总结

本章主要总结了有关pandas库中的一些函数,有排序函数sort_values; 数据合并函数merge、concat;分组统计函数groupby;以及数据重塑函数stack、pivot。

子非鱼,安知鱼之乐;

–2023-8-14 筑基篇

http://www.yayakq.cn/news/32457/

相关文章:

  • php的网站怎么做的wordpress搬家后页面和分类打不开
  • 门户网站建设自查为什么做网站推广
  • 做网站坚持原创文章有什么好处旅游网站开发目的6
  • 营销型网站优化泉州专门制作网站
  • 网站内容由什么组成部分组成部分株洲房地产信息网
  • 专门做配电箱的网站网站设计框架图
  • 企业网站建设的三个核心问题iis创建网站
  • 常州网站制作公司最近最火的电商平台是哪个
  • 做监控的有哪些网站项城做网站
  • 房产网站制作Wordpress自建外贸网站
  • 网站开发职业前景公共化网站建设方案
  • 广州做啊里巴巴网站多少钱网站建设滨江
  • 苏州模板网站专业设计邢台列表网
  • 学生怎么做网站网站建设有关要求
  • 做视频素材怎么下载网站歌尔股份砍单
  • 推广的网站需要备案吗网站建设需要提供什么资料
  • 找人做任务网站有哪些手机网站设计标准
  • 中国站长之家网站武隆网站建设哪家好
  • 建站模板网站设计新建门户网站的建设自查
  • 网站制作费用低鄂州市城市建设档案馆网站
  • 有园林案例的网站环保局网站设计方案
  • 北京网站建设公司黄页一般通过是什么梗
  • 沈阳建设工程信息网官网新网站安平网站建设培训
  • my最新域名是什么北京seo代理商
  • 网站建设常用的6大布局加代码查排名官网
  • 网站建设相关的网站网站开发教程pdf
  • 网站制作多久网站app免费下载软件大全
  • 网页制作与设计站点应该怎么建推动高质量发展的最终目的是什么
  • 网站架构包括哪些网站策划和运营
  • 苏州网站seo服务建设局网站作用