pandas 如何把时间转成index_Pandas的基本功能数据科学家使用的4个主要功能

Python的Pandas库因其基本功能而广受欢迎。Pandas库具有许多基本的基本功能和能力,使我们的日常工作变得更加轻松。强烈建议初学者掌握Pandas的基本功能。

fd4df95d885200c15f29ea449bfd27dc.png

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()

a381192f8b19a8786a55a5702105d4dc.png

2. tail()函数

现在,我们使用tail函数并将元素数设置为3:

>>> dataflair.tail(3)

f729b2d4a3508406e6b4baf26b8511d4.png

3.属性

    属性在Pandas的基本功能中起着重要作用,它可以帮助数据科学家快速分析,清理和准备数据。Pandas对象具有许多属性,使您可以访问元数据。

形状:给出轴的尺寸

轴标签:

系列:索引(仅一个轴)

DataFrame:索引(行)和列

面板:长轴,短轴和item

您可以安全地分配这些属性。

>>> dataflair_df1[:2]

5fefd226bdc270eb7e864efc64e320d4.png

这将打印DataFrame的最后两个值

>>> dataflair_df1.columns = [x.lower() for x in dataflair_df1.columns]>>> dataflair_df1

ac28d79cf24e39013dc9d268bbe8bad7.png

使用此功能,我们将大写的列名更改为小写。

如果必须获取Pandas数据结构中的实际数据,则只需使用values属性。

>>> dataflair_s1.values>>> dataflair_df1.values

2e74215fde051a46438270a3d9e1ee18.png

>>> dataflair_wp1.values

8e395ee0bbe7dc5add94ed28ddd30556.png

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

efc5cf2f2992df6c19a520c4a38d7a8a.png

>>> row = dataflair_df.iloc[1]>>> column = dataflair_df['two']>>> dataflair_df.sub(row, axis='columns')

6224878fe9e5cb2ae34737fbb94e8c1c.png

Pandas在数据科学中很流行,但在其他领域也有不同的应用。

>>> dataflair_df.sub(column, axis='index')

c20f113aace87eb573a5c90e14a5a442.png

>>> dataflair_df.sub(column, axis=0)

3174f998768f90d38b84cff05be35b5e.png

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')

be88faede106c278470e0378bfb90c27.png

在面板中,匹配或广播行为有些困难。因此,取而代之的是使用算术方法,从而为您提供了指定广播轴的选项。

>>> major_mean = dataflair_wp1.mean(axis='major')>>> major_mean

51eac6f52722a6948bfeca64cda51e7d.png

>>> dataflair_wp1.sub(major_mean, axis='major')

9fb9b5866369670e8b23de129bb27ad6.png

Series和Index支持divmod()内置函数。它同时进行向下取整的除法和模运算,并返回相同类型的二元组。它将其返回为左侧。

对于Series

>>> dataflair_s = pd.Series(np.arange(10))>>> dataflair_s

2fba76a15b1c7e32d5b65e6709112420.png

>>> div, rem = divmod(dataflair_s, 3) #Dividing by 3>>> div0  01  02  03  14  15  16  27  28  29  3>>> rem

0e2fe6c524fe9ae19d7d782cdab41e5f.png

对于Index

>>> dataflair_idx = pd.Index(np.arange(10))>>> dataflair_idx

f82e45af1b106d73f864725aadbe95d5.png

>>> div, rem = divmod(dataflair_idx, 3)>>> divInt64Index([0,0,0,1,1,1,2,2,2,3], dtype=’int64′)>>> rem

a20f490adc0234273c1e0c6b375e0c6e.png

我们也可以按元素进行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

f939f4428a1f24e10a6b943c15675a7a.png

>>> rem

811d74409eb42b98df5e13f34669d475.png

4.2 Pandas缺失值

在DataFrame和Series中,算术函数为您提供了一个输入fill_value的选项,当位置中缺少某个值时,该方法基本上替代了一个值。当添加两个DataFrame对象时,可以将NaN视为0。但是,如果两个DataFrame都缺少该值,则结果将为NaN。您仍然可以稍后使用fillna函数将其替换为其他值。

>>> dataflair_df

22a100f0f0ef7fa0aeab1bbe933e3a17.png

>>> 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

f67cca816f1147cbb7a9f93fa50bedc2.png

>>> dataflair_df + dataflair_df2

e483fd4f47416c887b038c8208028f89.png

>>> dataflair_df.add(dataflair_df2,fill_value=0) #does the same thing as ‘+’ operator

fa48ba728d2b3cbe7c43e18c60632cea.png

往期回顾

  • Pandas 10大应用领域,哪些行业在使用Pandas?

  • 15个Pandas最佳特性,是什么让Pandas如何特别?

  • 你知道pandas库吗?7分钟内快速了解

  • 当Python遇上Echarts,快速图表开发,即学即用

fd4df95d885200c15f29ea449bfd27dc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值