Pandas的初级用法

**


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)
语文 数学 英语
a 1 2 3
b 4 5 6
df1.tail(2)
语文 数学 英语
b 4 5 6
c 3 6 a
df1.describe()
语文 数学 英语
count 3.000000 3.000000 3.0
mean 2.666667 4.333333 6.0
std 1.527525 2.081666 3.0
min 1.000000 2.000000 3.0
25% 2.000000 3.500000 4.5
50% 3.000000 5.000000 6.0
75% 3.500000 5.500000 7.5
max 4.000000 6.000000 9.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()
买家实际支付金额 收货人姓名 宝贝标题
买家会员名
mrhy1 41.86 周某某 零基础学Python
mrhy2 41.86 杨某某 零基础学Python
mrhy3 48.86 刘某某 零基础学Python
mrhy4 48.86 张某某 零基础学Python
mrhy5 48.86 赵某某 C#项目开发实战入门
df1 = pd.read_csv('data/1月.csv',encoding='gbk',sep=',',index_col=0)
df1.head()
买家实际支付金额 收货人姓名 宝贝标题 订单付款时间
买家会员名
mrhy1 41.86 周某某 零基础学Python 2018/5/16 9:41
mrhy2 41.86 杨某某 零基础学Python 2018/5/9 15:31
mrhy3 48.86 刘某某 零基础学Python 2018/5/25 15:21
mrhy4 48.86 张某某 零基础学Python 2018/5/25 15:21
mrhy5 48.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()
买家会员名 买家实际支付金额 收货人姓名 宝贝标题 订单付款时间
0 mrhy1 41.86 周某某 零基础学Python 2018/5/16 9:41
1 mrhy2 41.86 杨某某 零基础学Python 2018/5/9 15:31
2 mrhy3 48.86 刘某某 零基础学Python 2018/5/25 15:21
3 mrhy4 48.86 张某某 零基础学Python 2018/5/25 15:21
4 mrhy5 48.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[['七月流火','二月二']]
语文 数学 英语
七月流火 105 88 115.0
二月二 112 115 NaN
type(df.loc[['七月流火','二月二']])
pandas.core.frame.DataFrame
df.iloc[[1,3]]
语文 数学 英语
七月流火 105 88 115.0
二月二 112 115 NaN
df.iloc[1:]
语文 数学 英语
七月流火 105 88 115.0
高袁圆 109 120 130.0
二月二 112 115 NaN
df['数学']
明日      105
七月流火     88
高袁圆     120
二月二     115
Name: 数学, dtype: int64
type(df['语文'])
pandas.core.series.Series
df[['语文','英语']]
语文 英语
明日 110 99.0
七月流火 105 115.0
高袁圆 109 130.0
二月二 112 NaN
df.loc[:,['语文']]
语文
明日 110
七月流火 105
高袁圆 109
二月二 112
type(df.loc[:,['语文']])
pandas.core.frame.DataFrame
df.loc[:,['语文','英语']]
语文 英语
明日 110 99.0
七月流火 105 115.0
高袁圆 109 130.0
二月二 112 NaN
df.iloc[:,[0]]
语文
明日 110
七月流火 105
高袁圆 109
二月二 112
df.loc[['七月流火'],['数学']]
数学
七月流火 88
df.loc[['七月流火','二月二'],['数学','语文']]
数学 语文
七月流火 88 105
二月二 115 112
df.iloc[1:,[0,2]]
语文 英语
七月流火 105 115.0
高袁圆 109 130.0
二月二 112 NaN
df 
语文 数学 英语
明日 110 105 99.0
七月流火 105 88 115.0
高袁圆 109 120 130.0
二月二 112 115 NaN
df[df.loc[:,'语文']>=110]
语文 数学 英语
明日 110 105 99.0
二月二 112 115 NaN
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

你可能感兴趣的:(pandas,python,数据分析)