pandas常用方法

1、了解

1.1 DataFrame和Series关系

pandas读取数据会返回一个 DataFrame的数据结构,查看某一列或者某一行的数据类型,会返回一个 Series的数据机构,也就是 SeriesDataFrame的组成单元。

1.2 df.iloc[]和df.loc[]区别

df.iloc[]利用具体的索引值获取行,只能是整型,
比如获取前三行:df.iloc[:3]
df.loc[]利用索引的名称获取行和列
如果设置了某一列为索引,然后利用df.loc[],就可以拿到指定索引的行,如果索引不在,就会报KeyError,
1.2.1 例如创建一个Series(和DataFrame查找方法一样)
import pandas as pd
s = pd.Series(np.nan, index=[49, 48, 47, 46, 45, 1, 2, 3, 4, 5])
print(s)

49   NaN
48   NaN
47   NaN
46   NaN
45   NaN
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN

1.2.2 利用iloc和loc查询

print(s.iloc[:6])

49   NaN
48   NaN
47   NaN
46   NaN
45   NaN
1    NaN

print(s.loc[:6])

keyError: 6

1.2.3 根据索引内容,查找对应的索引数值
df = pd.DataFrame(np.nan,
                  index=list('abcde'),
                  columns=['x', 'y', 'z', 8, 9])
print(df)

    x   y   z   8   9
a NaN NaN NaN NaN NaN
b NaN NaN NaN NaN NaN
c NaN NaN NaN NaN NaN
d NaN NaN NaN NaN NaN
e NaN NaN NaN NaN NaN

df_select = df.iloc[:df.index.get_loc('c') + 1, :4]
print(df_select)

    x   y   z   8
a NaN NaN NaN NaN
b NaN NaN NaN NaN
c NaN NaN NaN NaN

2、预览表格

2.1 查看前五行

import pandas as pd
df=pd.read_csv('test.csv')

df.head()

2.2 查看后五行

df.tail()

3、查看列名和索引

3.1 列名查看

df.colums

3.2 索引查看

df.index

4、将DataFram数据类型转换为Numpy

df.values

5、获取某一列数据

res=df[列名]

res[:5]

6、获取某一行数据

df.iloc[索引名]

7、设置某一列为索引

df.set_index(列名)

8、创建DataFrame


data = {'A':[1,2,3],
       'B':['a','b','c']}
df_create = pd.DataFrame(data)

9、创建Series

col = [i for i in range(5)]
s = pd.Series(data=col)

10、合并两个DataFrame

10.1 两个相同形状的df


df_a = pd.DataFrame({'id':['K0','K1','K2','K3'], 'A':['A0','A1','A2','A3'], 'B':['BO','B1','B2','B3']})
df_b = pd.DataFrame({'id':['K0','K1','K2','K3'], 'C':['CO','C1','C2','C3'],'D':['DO','D1','D2','D3']})
res = pd.merge(df_a, df_b, on='id')
res
"""
    id   A  B   C   D
0   K0  A0  BO  CO  DO
1   K1  A1  B1  C1  D1
2   K2  A2  B2  C2  D2
3   K3  A3  B3  C3  D3
"""

10.2 形状不同的df

df_a = pd.DataFrame({'id1':['K0','K1','K2','K3'],
                     'id2':['K0','K1','K2','K3'],
                     'A':['A0','A1','A2','A3'],
                     'B':['BO','B1','B2','B3']})
df_b = pd.DataFrame({'id1':['K0','K1','K2','K3'],
                     'id2':['K0','K1','K2','K4'],
                     'C':['C0','C1','C2','C3'],
                     'D':[' DO','D1','D2','D3']})
res = pd.merge(df_a, df_b, on=['key1', 'key2'])
print(res)

"""
    id1 id2 A   B   C   D
0   K0  K0  A0  BO  C0  DO
1   K1  K1  A1  B1  C1  D1
2   K2  K2  A2  B2  C2  D2
"""

10.3 纵向合并

纵向合并数据 pd.concat([df1,df2, ...], axis=0, ignore_index=True)重置索引,axis=1则是水平合并,与Numpy有很多相似的地方。

11 查看有多少行数据


len(df)

df.shape

df.info()

12、空值相关

12.1 显示有空值的行


res_df=df[df.isnull().T.any()==True]

12.2 显示没有空值的行


res_df=df[df.isnull().T.any()==False]

13 根据某一列的内容找对应的行


target=df.query('name==bob')

14 找某两列的内容同时满足的行

search_se= df.loc[df['jpg_name']=='img_id','item_name']=="身高"

search_index = search_se[search_se == True].index

target_dataframe = df.loc[search_index]

15、获取多个sheet的名字

sheet_name=df.keys()
sheet_1_df=df[sheet_name[0]]

16、读取时,只选指定的列


pd.read_csv(read_path_6,usecols=[2,5,6])

17、读取多个sheet


指定参数sheet_name=None,则会读取所有的
pd.read_csv(read_path_6,sheet_name=None,usecols=[2,5,6])

Original: https://blog.csdn.net/weixin_42726887/article/details/124856802
Author: OnTheOurWay
Title: pandas常用方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/739868/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 『 迷你教程 』Pytorch 中的二维张量的正确操作姿势

    二维张量类似于二维度量,与二维度量一样,也有 n n n 的行数和列数。行数和列数。 以一张灰度图为例,它是一个二维的数值矩阵,俗称像素。范围从”0″到&#…

    Python 2023年8月26日
    081
  • postgresql及wal2json插件安装

    1、安装postgres 安装文档见:https://www.postgresql.org/download/linux/redhat/我这里是centos7系统,选择安装post…

    Python 2023年9月28日
    070
  • python初级2

    博主简介:本博主是大二在读生,主要学习后端方向的知识。博主的博客主页:CSND博客Gitee主页:博主的Gitee博主的稀土掘金:稀土掘金主页博主的b站账号:程序员乐 目录 字符串…

    Python 2023年8月25日
    052
  • Pandas基础题一百道(前15)

    目录 1、使用List创建Series 2、使用Dict创建Series 3、将Series转换成List 4、将Series转换成DataFrame 5、借助Numpy创建Ser…

    Python 2023年8月18日
    056
  • 垃圾收集器

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年9月30日
    056
  • sensor_msgs::Image消息及其参数

    很多的博客直接将原网址复制粘贴过来,这里做一个整理,另外原网址是:https://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/…

    Python 2023年9月28日
    046
  • 微服务低代码Serverless平台(星链)的应用实践

    导读 星链是京东科技消金基础研发部研发的一款研发效能提升的工具平台,面向后端服务研发需求,尤其是集成性、场景化、定制化等难度不太高、但比较繁琐的需求,如服务前端的后端(BFF)、服…

    Python 2023年10月21日
    052
  • KEIL5 各个版本编译器的下载

    关于下载了新版本KEIL之后,编译器版本不对导致以前的程序不能运行,有许多问题需要解决,其中编译器版本问题是个不能避免的问题; 我之前用的是V5.06 update 7(build…

    Python 2023年11月8日
    056
  • 【目标跟踪】卡尔曼滤波器(Kalman Filter) 含源码

    目录 系列文章 效果展示 卡尔曼滤波器的简单介绍 一、公式解释 二、卡尔曼增益的推导 三、第一个例子 四、第二个例子 系列文章 【目标跟踪】卡尔曼滤波器(Kalman Filter…

    Python 2023年9月29日
    069
  • 我面试的人成了我的领导,我该不该离职?

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。 有一次领导让我参加面试,被面的岗位是技术总监。不知道为什么,每…

    Python 2023年10月21日
    056
  • 14天学习训练营导师课程-Pygame学习笔记-Part1(环境准备)

    14天学习训练营导师课程:李宁《Python Pygame游戏开发入门与实战》李宁《计算机视觉OpenCV Python项目实战》1李宁《计算机视觉OpenCV Python项目实…

    Python 2023年9月22日
    061
  • 两种数据提取框架的比较(scrapy和webmagic)

    背景: 最近北京疫情有点严重,状态是居家办公,又是买菜做饭又是核酸检测心情是无比的烦躁还总是会议,无需发言的会议就边听边写写csdn记录一下。这几天在用Java写一个数据抓取的程序…

    Python 2023年10月3日
    064
  • 使用Python计算个人所得税

    企业发放的奖金根据利润提成。 利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%…

    Python 2023年10月30日
    085
  • Flask的一些简单代码

    FPGA的Flash读写 _代码_可以分为两部分:Flash控制器和SPI接口。 Flash控制器是用来控制Flash存储器的,通过读取或写入数据实现对Flash的读写操作。SPI…

    Python 2023年8月15日
    051
  • 学会python永不加班系列之操作excel

    python作为一种解释性语言,简单高效的模式逐渐火爆。同时存在多种扩展性。 永不加班系列 python正确操作excel 实验环境: 系统:win10 语言:python3.8 …

    Python 2023年5月25日
    077
  • python安装向导_Scrapy安装向导

    安装Scrapy Scrapy运行在python2.7和python3.3或以上版本(Windows还不支持python3)。 如果你已经熟悉python包的安装,你可以安装Scr…

    Python 2023年10月6日
    027
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球