Python的Pandas库因其基本功能而广受欢迎。Pandas库具有许多基本的基本功能和能力,使我们的日常工作变得更加轻松。强烈建议初学者掌握Pandas的基本功能。
Pandas的基本功能
在学习Pandas基本功能之前,您必须学习导入库。
>>> import numpy as np>>> import pandas as pd
在这里,我们将创建在Pandas中使用的4个主要数据结构。
Index
>>>dataflair_index =pd.date_range('1/1/2000', periods=8)
Series
>>>dataflair_s1 = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
DataFrame
>>>dataflair_df1 = pd.DataFrame(np.random.randn(8, 3), index=dataflair_index,columns=['A', 'B', 'C'])
Panel
>>> dataflair_wp1 = pd.Panel(np.random.randn(2, 5, 4), items=['Item1', 'Item2'],major_axis=pd.date_range('1/1/2000', periods=5),minor_axis=['A', 'B', 'C', 'D'])
现在我们可以从Pandas的基本功能开始。
head()函数
tail()函数
灵活的二元运算
要查看一个序列的开始或结束,我们可以使用head()或tail()函数。
1. head()函数
让我们创建一个具有1000个随机值的序列。
>>> dataflair = pd.Series(np.random.randn(1000))
使用head()函数
>>> dataflair.head()
2. tail()函数
现在,我们使用tail函数并将元素数设置为3:
>>> dataflair.tail(3)
3.属性
属性在Pandas的基本功能中起着重要作用,它可以帮助数据科学家快速分析,清理和准备数据。Pandas对象具有许多属性,使您可以访问元数据。
形状:给出轴的尺寸
轴标签:
系列:索引(仅一个轴)
DataFrame:索引(行)和列
面板:长轴,短轴和item
您可以安全地分配这些属性。
>>> dataflair_df1[:2]
这将打印DataFrame的最后两个值
>>> dataflair_df1.columns = [x.lower() for x in dataflair_df1.columns]>>> dataflair_df1
使用此功能,我们将大写的列名更改为小写。
如果必须获取Pandas数据结构中的实际数据,则只需使用values属性。
>>> dataflair_s1.values>>> dataflair_df1.values
>>> dataflair_wp1.values
4.灵活的二元运算
在Pandas数据结构之间的二元操作中,有两个重要的关注点:
低维对象和高维对象之间的广播行为
计算时丢失数据
我们将学习如何独立处理这两个问题。它们可以同时处理。
4.1 广播行为
对于广播行为,“Series”输入为主要输入。您可以使用axis()关键字来匹配索引或列。
>>> dataflair_df = pd.DataFrame({'one' : pd.Series(np.random.randn(3), index=['a', 'b', 'c']),'two' : pd.Series(np.random.randn(4), index=['a', 'b', 'c', 'd']),'three' : pd.Series(np.random.randn(3), index=['b', 'c', 'd'])})>>> dataflair_df
>>> row = dataflair_df.iloc[1]>>> column = dataflair_df['two']>>> dataflair_df.sub(row, axis='columns')
Pandas在数据科学中很流行,但在其他领域也有不同的应用。
>>> dataflair_df.sub(column, axis='index')
>>> dataflair_df.sub(column, axis=0)
4.1.1 多索引DataFrames级别
使用系列,可以对齐多索引的DataFrame的级别。
>>> dataflair_dfmi = dataflair_df.copy()>>> dataflair_dfmi.index = pd.MultiIndex.from_tuples([(1,'a'),(1,'b'),(1,'c'),(2,'a')],names=['first','second'])>>> dataflair_dfmi.sub(column, axis=0, level='second')
在面板中,匹配或广播行为有些困难。因此,取而代之的是使用算术方法,从而为您提供了指定广播轴的选项。
>>> major_mean = dataflair_wp1.mean(axis='major')>>> major_mean
>>> dataflair_wp1.sub(major_mean, axis='major')
Series和Index支持divmod()内置函数。它同时进行向下取整的除法和模运算,并返回相同类型的二元组。它将其返回为左侧。
对于Series
>>> dataflair_s = pd.Series(np.arange(10))>>> dataflair_s
>>> div, rem = divmod(dataflair_s, 3) #Dividing by 3>>> div0 01 02 03 14 15 16 27 28 29 3>>> rem
对于Index
>>> dataflair_idx = pd.Index(np.arange(10))>>> dataflair_idx
>>> div, rem = divmod(dataflair_idx, 3)>>> divInt64Index([0,0,0,1,1,1,2,2,2,3], dtype=’int64′)>>> rem
我们也可以按元素进行divmod()。
div,rem = divmod(dataflair_s,[2,2,3,3,4,4,5,5,6,6])
#第一个元素将被2除,第二个元素被3除,第三个元素被3依此类推
>>> div, rem = divmod(dataflair_s, [2, 2, 3, 3, 4, 4, 5, 5, 6, 6])>>> div
>>> rem
4.2 Pandas缺失值
在DataFrame和Series中,算术函数为您提供了一个输入fill_value的选项,当位置中缺少某个值时,该方法基本上替代了一个值。当添加两个DataFrame对象时,可以将NaN视为0。但是,如果两个DataFrame都缺少该值,则结果将为NaN。您仍然可以稍后使用fillna函数将其替换为其他值。
>>> dataflair_df
>>> dataflair_df2 = pd.DataFrame({'one' : pd.Series(np.random.randn(3), index=['a', 'b', 'c']),'two' : pd.Series(np.random.randn(4), index=['a', 'b', 'c', 'd']),'three' : pd.Series(np.random.randn(3), index=['b', 'c', 'd'])})>>> dataflair_df2
>>> dataflair_df + dataflair_df2
>>> dataflair_df.add(dataflair_df2,fill_value=0) #does the same thing as ‘+’ operator
往期回顾
Pandas 10大应用领域,哪些行业在使用Pandas?
15个Pandas最佳特性,是什么让Pandas如何特别?
你知道pandas库吗?7分钟内快速了解
当Python遇上Echarts,快速图表开发,即学即用