、可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引:
2、通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:
3、通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:
4、查看不同列的数据类型:
DataFrame对象:二维表数据结构,由行列数据组成的表格
常用index表示行,columns表示列
'''
语文 数学 英语
0 110 105 99
1 105 88 115
2 109 120 130
'''
# print(dfcolumns) # Index(['语文', '数学', '英语'], dtype='object')
# print(dfindex) # Int64Index([0, 1, 2], dtype='int64')
# 遍历DataFrame数据的每一列
'''
0 110
1 105
2 109
Name: 语文, dtype: int64
0 105
1 88
2 120
Name: 数学, dtype: int64
0 99
1 115
2 130
Name: 英语, dtype: int64
'''
1创建一个DataFrame对象
pandasDataFrame(data,index,columns,dtype,copy)
# data表示数据,可以是ndarray数组,series对象、列表、字典等
# index表示行标签(索引)
# columns表示列标签(索引)
# dtype每一列数据的数据类型
# copy用于复制数据
# 返回值DataFrame
通过二维数组创建成绩表
'''
语文 数学 英语
0 110 105 99
1 105 88 115
2 109 120 130
'''
2通过字典创建DataFrame对象
value值只能是一维数组或单个的简单数据类型
# 数组,则要求所有的数组长度一致
# 单个数据,每行都需要添加相同数据
'''
语文 数学 英语 班级
0 110 105 109 高一7班
1 105 88 120 高一7班
2 99 115 130 高一7班
'''
'''
DataFrame属性
values 查看所有元素的值 dfvalues
dtypes 查看所有元素的类型 dfdtypes
index 查看所有行名、重命名行名 dfindex dfindex=[1,2,3]
columns 查看所有列名、重命名列名 dfcolumns dfcolumns=['语','数']
T 行列数据转换 dfT
head 查看前n条数据,默认5条 dfhead() dfhead(10)
tail 查看后n条数据,默认5条 dftail() dftail(10)
shape 查看行数和列数,[0]表示行,[1]表示列 dfshape[0] dfshape[1]
info 查看索引,数据类型和内存信息 dfinfo
DataFrame函数
describe 查看每列的统计汇总信息,DataFrame类型 dfdescribe()
count 返回每一列中的非空值的个数 dfcount()
sum 返回每一列和和,无法计算返回空值 dfsum()
max 返回每一列的最大值 dfmax()
min 返回每一列的最小值 dfmin()
argmax 返回最大值所在的自动索引位置 dfargmax()
argmin 返回最小值所在的自动索引位置 dfargmin()
idxmax 返回最大值所在的自定义索引位置 dfidxmax()
idxmin 返回最小值所在的自定义索引位置 dfidxmin()
mean 返回每一列的平均值 dfmean()
median 返回每一列的中位数 dfmedian()
var 返回每一列的方差 dfvar()
std 返回每一列的标准差 dfstd()
isnull 检查df中的空值,空值为True,否则为False,返回布尔型数组 dfisnull()
notnull 检查df中的空值,非空值为True,否则为False,返回布尔型数组 dfnotnull()
中位数又称中值,是指按顺序排列的一组数据中居于中间位置的数
方差用于度量单个随机变量的离散程序(不连续程度)
标准差是方差的算术平方根,反映数据集的离散程度
'''
3 导入xls或xlsx文件
# pandasread_excel(io,sheetname=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrow=None,na_values=None,keep_defalut_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,conver_float=True,mangle_dupe_cols=True,kwds)
'''
io 字符串,xls或xlsx文件路径或类文件对象
sheet_name:None、字符串、整数、字符串列表或整数列表,默认值为0
字符串用于工作表名称;整数为索引,表示工作表位置
字符串列表或整数列表用于请求多个工作表,为None时则获取所有的工作表
sheet_name = 0 第一个Sheet页中的数据作为DataFrame对象
sheet_name = 1 第二个Sheet页中的数据作为DataFrame对象
sheet_name = 'Sheet1' 名为Sheet1的Sheet页中的数据作为DataFrame对象
sheet_name = [0,1,'Sheet3'] 第一个,第二个和名为Sheet3的Sheet页中的数据作为DataFrame对象
header:指定作为列名的行,默认值为0,即取第一行的值为列名。或数据不包含列名,则为header=None
names:默认值为None,要使用的列名列表
index_col:指定列为索引列,默认值为None,索引0是DataFrame对象的行标签
usecols:int、list或字符串,默认值为None
如为None,则解析所有列
如为int,则解析最后一列
如为list列表,则解析列号和列表的列
如为字符串,则表示以逗号分隔的Excel列字母和列范围列表
squeeze:布尔值,默认为False,如果解析的数据只包含一列,则返回一个Series
dtype:列的数据类型名称为字典,默认值为None
skiprows:省略指定行数的数据,从第一行开始
skipfooter:省略指定行数的数据,从尾部数的行开始
4导入指定Sheet页的数据
# sheet_name=0表示第一个sheet页的数据,以此类推,如果不指定,则导入第一页
5指定行索引导入Excel数据
'''
Empty DataFrame
Columns: []
Index: [1, 3, 5]
'''
# 导入第一列数据
'''
Empty DataFrame
Columns: []
Index: [1, 3, 5]
'''
建议参考一下dataframe文档,里面有相应的方法,不需要使用for循环遍历,for循环遍历会拖慢程序。对于dataframe中数据检索可以使用下面的方法。
全部dfvalues
name列的数据df['name']values
loc检索A列dfloc['A']
iloc进行行检索dfiloc[0]
直接使用名字进行列检索,但不适合行检索df['name']
第一步:准备一些数据根据你的描述生成的一堆数据
定义一些变量
TOPLST = ['A', 'B', 'C'] # top10
PATH = 'testxls' # 我生成的Excel测试文件位置
第二步:根据描述,你需要对比两个序列之间是否有交集?
这里简单定义一个函数(当然也可以不这样做):
def checkLst(lst1, lst2):
# 如果两个列表中有相同值,则返回True
for item in lst1:
if item in lst2:
return True
return False
第三步:实现我们的需求:这里主要还是使用索引,掌握dataframe的函数基础上,如何使用这些接口函数很重要。这里简单几行实现数据清洗功能。
def clearData(path, toplst):
df = pandasread_excel(path)
# 找到需要判断的mesh列
mesh = df['mesh']
# 清除队列
clearilst = []
# 遍历每一行数据meshindex是RangeIndex实例
for index in meshindex:
# 判断top10和mesh列中是否有交集,如果没有交集则将索引加入删除队列
if not checkLst(toplst, meshiloc[index]split(';')):
# 将没有交集的行索引添加至清洗列表
clearilstappend(index)
# 清洗结果赋值
result = dfdrop(index=clearilst, axis=0)
return result
完整的代码截图如下:
程序源代码
我们来看下运行效果:
运行效果展示
完美运行,不用 *** 心索引+1的问题,也不用再创建一个DataFrame实例!
希望能够采纳!
以上就是关于pandas 怎么获取最大行数全部的内容,包括:pandas 怎么获取最大行数、python数据分析2:DataFrame对象、python对dataframe进行 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)