python中关于数据结构DataFrame讲解

本文深入讲解了Pandas库中DataFrame的构建、检索、索引重置及索引对象的使用,包括通过字典构建DataFrame、数据检索技巧、索引重置方法及索引对象的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DataFrame,顾名思义主要指的是矩阵。

#DataFrame
#DataFrame对象
"""
DataFrame在Pandas中用于表示矩阵数据
DataFrame包含了已排序的列集合
每一列可以是不同的值类型(数值、字符串、布尔值等)
DataFrame既有行索引index,也有列索引columns
DataFrame可以理解为一个共享相同索引的Series的字典
"""

#2、构建DataFrame
import pandas as pd
import numpy as np
data={'name':['A','B','B'],     
      'gender':['M','F','M'],     
      'age':[22,23,24]} 
c = pd.DataFrame(data) 
print(c)
"""
输出:
     name gender  age
0     A      M   22
1     B      F   23
2     C      M   24

"""
#用嵌套字典构建DataFrame
#嵌套字典构建DataFrame时,Pandas将字典的键做为列索引,将内部字典的键作为行进行索引
data= {'name':{1:'A',2:'B',3:'C'},     
     'gender':{1:'M',2:'F'},     
     'age':{1:22,2:23,3:24}}
c = pd.DataFrame(data)

#2、检索DataFrame
"""
若DataFrame数据量太大,可以用df.head()筛选出最前面的五行 
如df[‘name’](任意列名) 列名为属性,如df.name 
选择一行,可以使用属性loc返回一个Series对象。如df.loc[1],
索引的名字即为当前行的列索引“1” ,索引名字为各列的名字
"""

#3、重置索引

#重新索引方法reindex() 
d=pd.DataFrame(np.arange(9).reshape(3,3),
               index=['a','c','d '],
               columns=['one','two','four'])
print(d)
"""
    one  two  four
a     0    1     2
c     3    4     5
d     6    7     8

"""
#默认对行进行重新索引,如
e = d.reindex(['a','b','c','d'])
print(e)
"""
   one  two  four
a  0.0  1.0   2.0
b  NaN  NaN   NaN
c  3.0  4.0   5.0
d  NaN  NaN   NaN
"""
#可以同时对列和行进行索引,如 
e = d.reindex(index=['a','b','c','d'],
          columns=['one','two','three','four']) 
print(e)
"""
   one  two  three  four
a  0.0  1.0    NaN   2.0
b  NaN  NaN    NaN   NaN
c  3.0  4.0    NaN   5.0
d  NaN  NaN    NaN   NaN

"""
#缺失值自动用NaN填充 
#使用参数fill_value=n,用n代替缺失值

#4、索引对象
#索引对象用于存储轴标签和其他元数据
#用pd.index()生成索引对象,或从Series和DataFrame的行列索引 
labels=pd.index(np.arange(3)) 
labels=d.index
labels=d.columns 
f = pd.Series([1.3,-3.4,0], index = labels)
print(f)
"""
如果报错:AttributeError: module 'pandas' has no attribute 'index'

则是版本不对,旧的版本中pandas会有,不可以不练习此处,了解就好。

正确版本:pandas 0.19.2,在powershell 中输入pip install pandas=0.19.2
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值