Pandas库:从入门到应用

Posted Hub-Link

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas库:从入门到应用相关的知识,希望对你有一定的参考价值。

一、Pandas 行列数据选取

1.1、获取列数据
1.1.1、获取单列数据
import numpy as np
import pandas as pd

df = pd.DataFrame(data=np.random.randint(1,151,size=(10,3)),
                   columns=['Python','Math','Chinese'])
df[['Python']] #获取Python列数据,输出为DataFrame类型
print(type(df[['Python']])) # class 'pandas.core.frame.DataFrame'
df['Python'] #获取Python列数据,输出为Series类型
df.Python  #获取Python列数据,输出为Series类型
print(type(df['Python'])) # class 'pandas.core.series.Series'
1.1.2、获取多列数据
df[['Python','Chinese']] # 通过列索引值直接获取Python,Chinese列数据,类型是DataFrame

df[df.columns[0:2]]  #通过列索引的切片 来获取列,输出类型是DataFrame

1.2、获取行数据
1.2.1、根据索引获取行
  • 获取前三行

    df[:3]
    df[0:3] #前开后闭
    

  • 获取第2行到第4行

    df[1:4] #前开后闭
    

df['b':'d'] #通过行索引来获取

  • 获取特定行数据

    df[[True,False,False,True,False,False,False,False,False,False]] ## 为True显示改行数据,为Flase不显示
    

1.2.2、根据条件获取行
import numpy as np
import pandas as pd

df = pd.DataFrame(data=np.random.randint(1,151,size=(10,3)),
                  columns=['Python','Math','Chinese'],
                  index=list('abcdefghij'))


df[df['Python'] > 100] # 获取Python列大于100的数据

df[(df.Python > 100) & (df.Math > 100)] # 获取Python列和Math都大于100的数据

df[df.Python > df.Math ] # 获取Python列 大于 Math列的数据

df[df > 50]# 选择DataFrame中满⾜条件的值,如果满⾜返回值,不然返回空数据NaN

df[df.index.isin(['a','c','y'])] # isin判断 行索引是否存在,存在返回当前行

二、Pandas 区域数据选取

  • df.loc[] 只能使用标签索引,不能使用整数索引,通过便签索引切边进行筛选时,前闭后闭。
  • df.iloc[] 只能使用整数索引,不能使用标签索引,通过整数索引切边进行筛选时,前闭后开。
  • df.ix[]既可以使用标签索引,也可以使用整数索引。
2.1、标签索引获取数据
2.1.1、获取列数据
  • 获取单列数据

    import numpy as np
    import pandas as pd
    
    df = pd.DataFrame(data=np.random.randint(1,151,size=(10,3)),
                      columns=['Python','Math','Chinese'],
                      index=list('abcdefghij'))
    
    df.loc[:,'Python']  #选取Python 列数据
    

  • 获取多列数据

    df.loc[:,['Math','Chinese']] #先去Math,Chinese 两列数据
    

  • 获取连续列数据

    df.loc[:,'Python':'Chinese'] #先去Python到Chinese 列的全部数据
    

2.1.2、获取行数据
  • 获取单行数据

    import numpy as np
    import pandas as pd
    
    df = pd.DataFrame(data=np.random.randint(1,151,size=(5,3)),
                      columns=['Python','Math','Chinese'],
                      index=list('abcde'))
    
    df.loc['d'] #获取d行数据
    

  • 获取多行数据

    df.loc[['a','e']] # 获取a,e行数据
    df.loc[['a', 'e'], :] # 获取a,e行数据
    df[[True, False, False, False, True]]# 获取a,e行数据
    

  • 获取连续行数据
df.loc['a':'d'] #获取a-d行数据

  • 根据条件获取数据

    df.loc[df.Chinese > 100]  #获取Chinese分数大于100的行数
    df.loc[df.Chinese > 100 ,:]  #获取Chinese分数大于100的行数据
    

2.1.3、同时获取行列数据
df.loc['a':'c','Chinese'] # 选取a到c行Chinese列数据

2.1.4、行列数据赋值
  • 行数据赋值
import numpy as np
import pandas as pd

df = pd.DataFrame(data=np.random.randint(1,151,size=(5,3)),
                  columns=['Python','Math','Chinese'],
                  index=list('abcde'))

df.loc['a',:] = 100 ##将a行数据全部赋值为 100
df

df.loc[df.Python < 100] = 100 #将Python列小于100的 行赋值为100
df

  • 列数据赋值

    df.loc[:,'Math'] = 100 # 将Math列数据全部赋值为 100
    df
    

df.loc[df.Python < 100] = 100 #将Python列小于100的赋值为100
df
  • 行列数据同时赋值
df.loc[['b', 'e'], ['Python','Chinese']] = 30 ## 令b, e行的Python,Chinese列为30
df

2.2、位置获取数据
2.2.1、获取列数据
  • 获取单行数据

    import numpy as np
    import pandas as pd
    
    df = pd.DataFrame(data=np.random.randint(1,151,size=(5,3)),
                      columns=['Python','Math','Chinese'],
                      index=list('abcde'))
    
    df.iloc[1]  # 获取第二行数据 返回的是Series 数据格式
    df.iloc[1, :] # 获取第二行数据 返回的是Series 数据格式
    
    

df.iloc[[1]] # 获取第二行数据 返回的是dataframe 数据格式
df.iloc[[1], :] # 获取第二行数据 返回的是dataframe 数据格式

  • 获取多行数据
df.iloc[[1,2,4]] # 获取2,3,5行数据

  • 获取连续多行数据
df.iloc[1:3] #获取2-3行数据 左开右闭

2.2.2、获取列数据
  • 获取单列数据
df.iloc[:, 2] #获取第三列数据

  • 获取多列数据
df.iloc[:, [1,2]] #获取第二,三列数据

  • 获取连续多列数据
df.iloc[:, 0:3] #获取前三列数据 左开右闭合

2.2.3、同时获取行列数据
df.iloc[0,1]  #获取第一行第二列的值

df.iloc[[1,2],1:3]  #选取第二三行的第二到三列

2.2.4、行列数据赋值
df.iloc[0,1] = 150 # 第一行第二列 赋值 150

以上是关于Pandas库:从入门到应用的主要内容,如果未能解决你的问题,请参考以下文章

教程 | 一文入门Python数据分析库Pandas

pyhton中pandas数据分析模块快速入门(非常容易懂)

Pandas之入门

Pandas 入门

pandas入门

Python3快速入门(十五)——Pandas数据处理