Pandas的初级用法

本文介绍了Python数据分析库pandas的基础用法,包括Series和DataFrame对象的创建、索引与切片操作,数据读取与写入,以及数据抽取、增加、修改和删除。通过实例展示了如何高效地处理和分析数据。
摘要由CSDN通过智能技术生成

**


pandas


**

pandas是Python核心数据分析库,它提供了快速、灵活、明确的数据结构,能够简单、直观、快速地处理各类的数据。

https://pandas.pydata.org/docs/

import pandas as pd 

Series对象

一种类似一维数组的数据结构

##创建Series对象

s1=pd.Series([2,3,5])
print(s1)
0    2
1    3
2    5
dtype: int64

手动设置Series索引

s1=pd.Series(data=[2,3,5],index=['a','b','c'])
print(s1)
a    2
b    3
c    5
dtype: int64

Series 的索引和切片

s1[2]
5
s1['c']
5
print(s1[1:3])
b    3
c    5
dtype: int64
s1
a    2
b    3
c    5
dtype: int64
print(s1['a':'c'])
a    2
b    3
c    5
dtype: int64
print(s1[['a','c']])
a    2
c    5
dtype: int64

获取Series的索引和值

s1=pd.Series([2,3,['abc','dd']],index=['a','b','c'])
print(s1)
a            2
b            3
c    [abc, dd]
dtype: object
print(s1.index)
Index(['a', 'b', 'c'], dtype='object')
print(s1.values)
[2 3 5]

DataFrame对象

创建DataFrame对象

df1=pd.DataFrame(data=[[1,2,3],[4,5,6],[3,6,9]])
print(df1)
   0  1  2
0  1  2  3
1  4  5  6
2  3  6  9
df1=pd.DataFrame([[1,2,3],[4,5,6],[3,6,'a']],index=['a','b','c'],columns=['语文','数学','英语'])
print(df1)
   语文  数学 英语
a   1   2  3
b   4   5  6
c   3   6  a
df1.index
Index(['a', 'b', 'c'], dtype='object')
df1.columns
Index(['语文', '数学', '英语'], dtype='object')
df1.values
array([[1, 2, 3],
       [4, 5, 6],
       [3, 6, 'a']], dtype=object)
df1.head(2)
语文数学英语
a123
b456
df1.tail(2)
语文数学英语
b456
c36a
df1.describe()
语文数学英语
count3.0000003.0000003.0
mean2.6666674.3333336.0
std1.5275252.0816663.0
min1.0000002.0000003.0
25%2.0000003.5000004.5
50%3.0000005.0000006.0
75%3.5000005.5000007.5
max4.0000006.0000009.0
df1.shape
(3, 3)

导入数据

pd.read_excel pd.read_csv pd.read_table

df1 = pd.read_excel(io = 'data/1月.xlsx',sheet_name = 0,index_col=0)
df1.head()
买家实际支付金额收货人姓名宝贝标题
买家会员名
mrhy141.86周某某零基础学Python
mrhy241.86杨某某零基础学Python
mrhy348.86刘某某零基础学Python
mrhy448.86张某某零基础学Python
mrhy548.86赵某某C#项目开发实战入门
df1 = pd.read_csv('data/1月.csv',encoding='gbk',sep=',',index_col=0)
df1.head()
买家实际支付金额收货人姓名宝贝标题订单付款时间
买家会员名
mrhy141.86周某某零基础学Python2018/5/16 9:41
mrhy241.86杨某某零基础学Python2018/5/9 15:31
mrhy348.86刘某某零基础学Python2018/5/25 15:21
mrhy448.86张某某零基础学Python2018/5/25 15:21
mrhy548.86赵某某C#项目开发实战入门2018/5/25 15:21
type(df1)
pandas.core.frame.DataFrame
df1 = pd.read_table('data/1月.txt',encoding='gbk',sep='\t')
df1.head()
买家会员名买家实际支付金额收货人姓名宝贝标题订单付款时间
0mrhy141.86周某某零基础学Python2018/5/16 9:41
1mrhy241.86杨某某零基础学Python2018/5/9 15:31
2mrhy348.86刘某某零基础学Python2018/5/25 15:21
3mrhy448.86张某某零基础学Python2018/5/25 15:21
4mrhy548.86赵某某C#项目开发实战入门2018/5/25 15:21

数据抽取

loc iloc

data = [[110,105,99],[105,88,115],[109,120,130],[112,115]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
print(df)
       语文   数学     英语
明日    110  105   99.0
七月流火  105   88  115.0
高袁圆   109  120  130.0
二月二   112  115    NaN
df.loc['七月流火']
语文    105.0
数学     88.0
英语    115.0
Name: 七月流火, dtype: float64
type(df.loc['七月流火'])
pandas.core.series.Series
df.iloc[1]
语文    105.0
数学     88.0
英语    115.0
Name: 七月流火, dtype: float64
df.loc[['七月流火','二月二']]
语文数学英语
七月流火10588115.0
二月二112115NaN
type(df.loc[['七月流火','二月二']])
pandas.core.frame.DataFrame
df.iloc[[1,3]]
语文数学英语
七月流火10588115.0
二月二112115NaN
df.iloc[1:]
语文数学英语
七月流火10588115.0
高袁圆109120130.0
二月二112115NaN
df['数学']
明日      105
七月流火     88
高袁圆     120
二月二     115
Name: 数学, dtype: int64
type(df['语文'])
pandas.core.series.Series
df[['语文','英语']]
语文英语
明日11099.0
七月流火105115.0
高袁圆109130.0
二月二112NaN
df.loc[:,['语文']]
语文
明日110
七月流火105
高袁圆109
二月二112
type(df.loc[:,['语文']])
pandas.core.frame.DataFrame
df.loc[:,['语文','英语']]
语文英语
明日11099.0
七月流火105115.0
高袁圆109130.0
二月二112NaN
df.iloc[:,[0]]
语文
明日110
七月流火105
高袁圆109
二月二112
df.loc[['七月流火'],['数学']]
数学
七月流火88
df.loc[['七月流火','二月二'],['数学','语文']]
数学语文
七月流火88105
二月二115112
df.iloc[1:,[0,2]]
语文英语
七月流火105115.0
高袁圆109130.0
二月二112NaN
df 
语文数学英语
明日11010599.0
七月流火10588115.0
高袁圆109120130.0
二月二112115NaN
df[df.loc[:,'语文']>=110]
语文数学英语
明日11010599.0
二月二112115NaN
print(df)
       语文   数学     英语
明日    110  105   99.0
七月流火  105   88  115.0
高袁圆   109  120  130.0
二月二   112  115    NaN

数据的增加、修改和删除

data = [[110,105,99],[105,88,115],[109,120,130],[112,115]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
print(df)
       语文   数学     英语
明日    110  105   99.0
七月流火  105   88  115.0
高袁圆   109  120  130.0
二月二   112  115    NaN

增加数据

df['物理']=[88,90,50,60]
print(df)
       语文   数学     英语  物理
明日    110  105   99.0  88
七月流火  105   88  115.0  90
高袁圆   109  120  130.0  50
二月二   112  115    NaN  60
df.loc['胡静']=[120,99,43,24]
print(df)
       语文   数学     英语  物理
明日    110  105   99.0  88
七月流火  105   88  115.0  90
高袁圆   109  120  130.0  50
二月二   112  115    NaN  60
胡静    120   99   43.0  24
df1=df.append(df)
print(df1)
       语文   数学     英语  物理
明日    110  105   99.0  88
七月流火  105   88  115.0  90
高袁圆   109  120  130.0  50
二月二   112  115    NaN  60
胡静    120   99   43.0  24
明日    110  105   99.0  88
七月流火  105   88  115.0  90
高袁圆   109  120  130.0  50
二月二   112  115    NaN  60
胡静    120   99   43.0  24

修改数据

data = [[110,105,99],[105,88,115],[109,120,130],[112,115]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
print(df)
       语文   数学     英语
明日    110  105   99.0
七月流火  105   88  115.0
高袁圆   109  120  130.0
二月二   112  115    NaN
df.columns
Index(['语文', '数学', '英语'], dtype='object')
df.columns=['语文', '数学(上 )', '大学英语']
print(df)
       语文  数学(上 )   大学英语
明日    110     105   99.0
七月流火  105      88  115.0
高袁圆   109     120  130.0
二月二   112     115    NaN
df.rename(columns={'语文':'大学语文','英语':'高级英语'},inplace=True)
print(df)
      大学语文   数学   高级英语
明日     110  105   99.0
七月流火   105   88  115.0
高袁圆    109  120  130.0
二月二    112  115    NaN
df.index
Index(['明日', '七月流火', '高袁圆', '二月二'], dtype='object')
df.index=['明日dd', '七月流火dd', '高袁圆ee', '二月二ss']
print(df)
        大学语文   数学   高级英语
明日dd     110  105   99.0
七月流火dd   105   88  115.0
高袁圆ee    109  120  130.0
二月二ss    112  115    NaN
df.rename(index={'明日':'后日','二月二':'三月三'},inplace=True)
print(df)
       语文   数学     英语
后日    110  105   99.0
七月流火  105   88  115.0
高袁圆   109  120  130.0
三月三   112  115    NaN
df.loc['七月流火']
语文    105.0
数学     88.0
英语    115.0
Name: 七月流火, dtype: float64
df.loc['七月流火']=[110,90,100]
print(df)
       语文   数学     英语
后日    110  105   99.0
七月流火  110   90  100.0
高袁圆   109  120  130.0
三月三   112  115    NaN
df['语文']=[100,90,20,3]
print(df)
       语文   数学     英语
后日    100  105   99.0
七月流火   90   90  100.0
高袁圆    20  120  130.0
三月三     3  115    NaN
df.iloc[[0,3],[0,2]]=[[150,150],[0,0]]
print(df)
       语文   数学     英语
后日    150  150  150.0
七月流火   90   90  100.0
高袁圆    20  120  130.0
三月三     0    0    0.0

删除数据

data = [[110,105,99],[105,88,115],[109,120,130],[112,115]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
print(df)
       语文   数学     英语
明日    110  105   99.0
七月流火  105   88  115.0
高袁圆   109  120  130.0
二月二   112  115    NaN
df.drop(['数学'],axis=1,inplace=True)
print(df)
       语文     英语
明日    110   99.0
七月流火  105  115.0
高袁圆   109  130.0
二月二   112    NaN
df.drop(['七月流火'],axis=0,inplace=True)
print(df)
      语文   数学     英语
明日   110  105   99.0
高袁圆  109  120  130.0
二月二  112  115    NaN
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值