数据分析之DataFrame基本操作

本文详细介绍了Pandas中的DataFrame数据结构,包括如何创建DataFrame,添加行和列,索引操作,数据运算,处理空值,创建多层索引,聚合操作,拼接与合并,以及数据异常值的检测和过滤。还讨论了映射、自定义函数应用,以及数据分类处理的关键步骤,如groupby和聚合函数的使用。

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

导包

import numpy as np
import pandas as pd 
from pandas import DataFrame,Series

DataFrame是一个【表格型】的数据结构。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。

  • 行索引:index
  • 列索引:columns
  • 值:values

DataFrame的创建

  • 最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。
  • 此外,DataFrame会自动加上每一行的索引。使用字典创建的DataFrame后,则columns参数将不可被使用。同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。
  • DataFrame属性:values、columns、index、shape
dic={
    'xiaoming':[88,66,55],
    'lingling':[99,77,33],
    'xiaoli':[55,88,65]
}

df1=DataFrame(data=dic,index=['语文','数学','英语'])
df1
lingling    xiaoli  xiaoming
语文  99  55  88
数学  77  88  66
英语  33  65  55

根据添加行索引添加行数据

df1.loc['物理']=[55,84,66]
df1

lingling    xiaoli  xiaoming
语文  99  55  88
数学  77  88  66
英语  33  65  55
物理  55  84  66

根据添加列索引添加列数据

df1['xixi']=[88,55,44,11]
df1

lingling    xiaoli  xiaoming    xixi
语文  99  55  88  88
数学  77  88  66  55
英语  33  65  55  44
物理  55  84  66  11

对列进行索引

  • 通过类似字典的方式 df[‘q’]
  • 通过属性的方式 df.q
  • 可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。

对行进行索引

  • 使用.loc[]加index来进行行索引
  • 使用.iloc[]加整数来进行行索引
  • 同样返回一个Series,index为原来的columns。

使用行索引(iloc[3,1] or loc[‘C’,’q’]) 行索引在前,列索引在后


df.iloc[1,2]

df.loc['语文','xiaoli']

行切片

df1['语文':'英语']

列切片

df1.loc[:,'lingling':'xiaoming']
  • 直接用中括号时:
  • 索引表示的是列索引
  • 切片表示的是行切片

DataFrame的运算

  • 每个元素进行+-*/
df1+1
  • DataFrame之间的运算,同Series一样:
  • 在运算中自动对齐不同索引的数据
  • 如果索引不对应,则补NaN
df2=DataFrame(data=np.random.randint(1,100,(4,4)),index=['A','B','C','D'],
             columns=['a','b','c','d'])
df2
df1+df2

pandas处理空值操作

  • isnull()
  • notnull()
  • dropna(): 过滤丢失数据
  • fillna(): 填充丢失数据
  • df.notnull().any()/all()来判断每行是否有空值
df3=DataFrame(data=np.random.randint(1,100,(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值