本文介绍的方法均为我在做作业是常用的方法,要是有不对的地方还请大神指正
本文示例文件
排名,姓名,企业简称,总部(省份),总部(城市),现金捐赠总额(万元)
1,许家印,恒大集团,广东,深圳,407000
2,杨国强家族,碧桂园,广东,佛山,165645
3,马云,阿里巴巴,浙江,杭州,98020
4,马化腾,腾讯,广东,深圳,73084
5,卢志强,中国泛海控股集团,北京,北京,58426
除了上面列出来的三个参数外,读文件方法的相关参数可自行查阅官方文档
官方文档
>>> 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
使用该方法读取.xlsx文件需要借助openpyxl模块,读取.xls文件需要借助xlrd模块。
这里只写出几种常用文件的读取方式,其他方法(比如读取html网页)可自行查询相关文档。
通过行标签获取特定列
>>> data['排名']
0 1
1 2
2 3
3 4
4 5
>>> data[:2]排名 姓名 企业简称 总部(省份) 总部(城市) 现金捐赠总额(万元)
0 1 许家印 恒大集团 广东 深圳 407000
1 2 杨国强家族 碧桂园 广东 佛山 165645
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
获得的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
转换、过滤需要传入一个函数作为参数,这里不做介绍。
函数原型如下
DataFrame.insert(loc, column, value, allow_duplicates=False)
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False,
errors='raise')
>>> 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.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小时内删除。
留言与评论(共有 0 条评论) |