python pandas数据处理和基本操作

阅读: 评论:0

python pandas数据处理和基本操作

python pandas数据处理和基本操作

本文介绍的方法均为我在做作业是常用的方法,要是有不对的地方还请大神指正

本文示例文件

排名,姓名,企业简称,总部(省份),总部(城市),现金捐赠总额(万元)
1,许家印,恒大集团,广东,深圳,407000 
2,杨国强家族,碧桂园,广东,佛山,165645 
3,马云,阿里巴巴,浙江,杭州,98020 
4,马化腾,腾讯,广东,深圳,73084 
5,卢志强,中国泛海控股集团,北京,北京,58426 

读txt或csv文件方法--pd.read_csv(filename,dtype,encoding)

除了上面列出来的三个参数外,读文件方法的相关参数可自行查阅官方文档
官方文档

>>> data.iloc
&indexing._iLocIndexer object at 0x0000012532DD3FB0>
>>> import pandas as pd
>>> filename = 'D:PYPY_workpy123pandas示例文件.csv'
>>> data = pd.read_csv(filename)
>>> pd.set_option('display.unicode.east_asian_width', True) # 设置输出时列对齐
>>> data排名                姓名              企业简称 总部(省份) 总部(城市)  现金捐赠总额(万元)
0      1              许家印              恒大集团         广东         深圳                407000
1      2          杨国强家族                碧桂园         广东         佛山                165645
2      3                马云              阿里巴巴         浙江         杭州                 98020
3      4              马化腾                  腾讯         广东         深圳                 73084
4      5              卢志强      中国泛海控股集团         北京         北京                 58426

读excel文件方法--pd.read_excel()

使用该方法读取.xlsx文件需要借助openpyxl模块,读取.xls文件需要借助xlrd模块。

这里只写出几种常用文件的读取方式,其他方法(比如读取html网页)可自行查询相关文档。

获取DataFrame中的数据

通过行标签获取特定列

>>> data['排名']
0    1
1    2
2    3
3    4
4    5

通过行序号的切片获取多行

>>> data[:2]排名        姓名  企业简称 总部(省份) 总部(城市)  现金捐赠总额(万元)
0     1      许家印  恒大集团         广东         深圳                407000
1     2  杨国强家族    碧桂园         广东         佛山                165645

通过iloc、loc属性获取

iloc :基于行、列序号索引进行查询,索引号均是从0开始。输入可以是:单个整数、整数列表或数组、整数切片、布尔数组。

>>> data.iloc[0][:]
排名                           1
姓名                      许家印
企业简称                恒大集团
总部(省份)                广东
总部(城市)                深圳
现金捐赠总额(万元)      407000
Name: 0, dtype: object

loc :基于行、列标签索引进行索引查询。输入可以是:单个标签、标签列表或数组、标签切片(此处切片包含结束位置)、布尔数组。

>>> data.loc[:,'排名']
0    1
1    2
2    3
3    4
4    5
Name: 排名, dtype: int64
>>> data.loc[:]['排名']
0    1
1    2
2    3
3    4
4    5
Name: 排名, dtype: int64

pandas分组(GroupBy)

获得的groupby对象可以进行遍历,依次对不同分组进行操作。

>>> grouped = upby('总部(省份)')

查看分组

>>> ups
{'北京': [4], '广东': [0, 1, 3], '浙江': [2]}

查看某一个组

>>> _group('广东')排名        姓名  企业简称 总部(省份) 总部(城市)  现金捐赠总额(万元)
0     1      许家印  恒大集团         广东         深圳                407000
1     2  杨国强家族    碧桂园         广东         佛山                165645
3     4      马化腾      腾讯         广东         深圳                 73084

聚合

聚合函数为每个组返回一个聚合值。 一旦创建了 group by 对象,就可以对分组数据执行多个聚合操作。一个明显的方法是通过聚合或等效的 agg 方法进行聚合

注意一次应用多个聚合函数传入的参数应该是列表

>>> grouped['现金捐赠总额(万元)'].an)
总部(省份)
北京     58426.0
广东    215243.0
浙江     98020.0
Name: 现金捐赠总额(万元), dtype: float64
>>> grouped['现金捐赠总额(万元)'].agg([np.mean,np.size])mean  size
总部(省份)
北京           58426.0     1
广东          215243.0     3
浙江           98020.0     1

转换、过滤需要传入一个函数作为参数,这里不做介绍。

pandas数据列插入或删除

函数原型如下

DataFrame.insert(loc, column, value, allow_duplicates=False)
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False,
errors='raise')

DataFrame行、列标签改变--ame()

>>> ame(columns={'排名':'rank'})rank        姓名          企业简称 总部(省份) 总部(城市)  现金捐赠总额(万元)
0     1      许家印          恒大集团         广东         深圳                407000
1     2  杨国强家族            碧桂园         广东         佛山                165645
2     3        马云          阿里巴巴         浙江         杭州                 98020
3     4      马化腾              腾讯         广东         深圳                 73084
4     5      卢志强  中国泛海控股集团         北京         北京                 58426>>> ame(index={0:'零'})排名        姓名          企业简称 总部(省份) 总部(城市)  现金捐赠总额(万元)
零     1      许家印          恒大集团         广东         深圳                407000
1      2  杨国强家族            碧桂园         广东         佛山                165645
2      3        马云          阿里巴巴         浙江         杭州                 98020
3      4      马化腾              腾讯         广东         深圳                 73084
4      5      卢志强  中国泛海控股集团         北京         北京                 58426

DataFrame排序

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)

>>> data.sort_values('现金捐赠总额(万元)')排名        姓名          企业简称 总部(省份) 总部(城市)  现金捐赠总额(万元)
4     5      卢志强  中国泛海控股集团         北京         北京                 58426
3     4      马化腾              腾讯         广东         深圳                 73084
2     3        马云          阿里巴巴         浙江         杭州                 98020
1     2  杨国强家族            碧桂园         广东         佛山                165645
0     1      许家印          恒大集团         广东         深圳                407000

DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False, key=None)

key参数合理结合lambda运用,可以起到事半功倍的效果。

ascending参数为True时升序排序,反之降序

判断是否是数字的函数

def isnumber(aString):#判断是否为浮点数try:float(aString)return Trueexcept:return False

对于需要判断数字是整数还是浮点数并输出的时候,可以通过这个函数结合a.is_integer()方法进行操作。

除此之外可以以字符串形式读入,在排序时通过key参数的使用使得数据按照float形式排序,所得结果依然是字符串形式,从而输出结果整数就是整数格式,浮点数就是浮点数格式。

本文发布于:2024-01-28 19:42:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064421439812.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据处理   操作   python   pandas
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23