龙空技术网

Python数据分析之Pandas第一练:十分钟学会创建、查看和选择数据

环宇财商大讲堂 526

前言:

今天咱们对“jupyter怎么查看数据类型columns”大体比较关切,咱们都想要剖析一些“jupyter怎么查看数据类型columns”的相关知识。那么小编在网上网罗了一些有关“jupyter怎么查看数据类型columns””的相关资讯,希望姐妹们能喜欢,各位老铁们快快来了解一下吧!

什么是Pandas

对于初学者而言,可以简单粗暴地理解为,Pandas就是Python中的Excel!所以,现在有很多人在分享如何用Python代替Excel提升工作效率之类的内容。这对很多苦Excel久矣并且有编码基础的同学还是很有诱惑力的,哈哈哈。

书归正传,Pandas库是基于NumPy库的一个开源Python库,被广泛用于完成数据分析工作,其名字源于“panel data”(面板数据)。Pandas库提供非常直观的数据结构和强大的数据处理功能,提供了大量能使我们快速便捷地处理数据的函数和方法

DA with Pandas

Pandas官网地址为:,有兴趣深入了解和学习的同学可以自行查阅。

Pandas官网

十分钟上手Pandas

下面是干货放送时间,翻译的官方文档《pandas: powerful Python data analysis toolkit Release 1.4.2》的2.1节《10 minutes to pandas》部分,想获取完整文档的同学请访问上面的官网至文档中获取。

0 安装、调用Pandas及相关库

!pip install pandas  # 在Jupyter中安装包需要前面添加“!”import numpy as pdimport pandas as pd#help(pandas)

1 创建Pandas对象

Pandas的数据对象有两种:Serises和DataFrame。

Series类似于通过NumPy库创建的一维数组,不同的是Series对象不仅包含数值,还包含一组索引,单独使用相对较少。DataFrame是一种二维表格数据结构,可以将其看成一个Excel表格,应用广泛。

# 传递值列表(List)创建序列(Series),使用默认整数索引s = pd.Series([1, 3, 5, np.nan, 6, 8])  # 传递NumPy数组(array),创建一个带有日期索引和列标签的数据框(DateFrame)dates = pd.date_range("20130101", periods=6)  df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))# 通过字典创建创建数据框(DateFrame)df2 = pd.DataFrame(      {"A": 1.0,      "B": pd.Timestamp("20130102"),     "C": pd.Series(1, index=list(range(4)), dtype="float32"),     "D": np.array([3] * 4, dtype="int32"),      "E": pd.Categorical(["test", "train", "test", "train"]),      "F": "foo",      }     )# 4 查看df2各列的数据类型df2.dtypes

其中df的输出结果如下:

创建的数据框df

后续为了避免文章过长,除核心结果外,一般的结果请小伙伴们自己输出下,这里就不一一列举了。

2 查看对象信息

一般地,我们拿到数据时,会粗略检视下数据内容,比如查看下数据的样子、索引、列名、基本统计信息等。

df.head()  # 查看头部样例数据,默认为5条df.tail()  # 查看后5条数据df.head(3)  # 查看前3条数据df.index  # 显示索引df.columns  # 显示列名df.to_numpy()  # 以NumPy的array方式显示数据,输出结果中不包含索引和列名df.describe()  # 查看基本统计信息

其中,df.describe()的输出结果包含了样本个数、均值、标准差、分位数等描述性统计信息,如下所示。

df.describe()输出结果

有时,我们也会关注数据的转置和排序信息。

# 转置df.T  # 排序# axis=0是按列,1是按行排序,ascending是递增参数,默认为Truedf.sort_index(axis=0, ascending=False)  df.sort_values(by='B', ascending=True)  

3 选择数据

我们拥有了数据之后,为了避免出现“空有宝山不自知”的尴尬局面,必须要知道如何去选择自己所需要的信息。通常,在Pandas中,使用.at, .iat, .loc和.iloc等方法选择数据。其中,带有“i”的可以理解为integer,就是按照整数标识数据位置。

df.loc[dates[0]]df.loc[:, ['A', 'B']]df.loc['20130102', ['A', 'C']]df.loc['20130102':'20130104', ['A', 'C']]df.loc[dates[0], 'A']df.at[dates[0], 'A']df.iloc[3]  # 选择第3 + 1 = 4行数据df.iloc[3:5, 0:2]  # 选择第4行、第5行和第1列、第2列数据,注意取值是左开右闭,即大于3小于等于5df.iloc[[1, 2, 4], [0, 2]]df.iloc[1:3, :]df.iloc[:, 1:3]df.iloc[1, 1]df.iat[1, 1]

有时,我们根据一些判断条件进行数据选择。

df[df["A"] > 0]df[df > 0]df2[df2["E"].isin(["two", "four"])]

其中,第二行代码的输出结果为:

df[df > 0]

很多时候,我们需要对已有数据中某些位置的值进行加工变更,需要进行赋值操作。

s1 = pd.Series([1, 2, 3, 4, 5, 6], index=pd.date_range("20130102", periods=6))df["F"] = s1  # 赋值新列会自动通过索引对齐数据df.at[dates[0], "A"] = 0  # 通过标签赋值df.iat[0, 1] = 0  # 通过位置赋值df.loc[:, "D"] = np.array([5] * len(df))  # 通过NumPy数组赋值

经过一番猛如虎的操作之后,会得到下面的新df:

变更了某些位置数值的新生成df

df2 = df.copy()print(df2)print(66 * '-')df2[df2 > 0] = -df2  # 通过where条件进行赋值print(df2)

df2[df2 > 0] = -df2

一起练习吧

好了,Pandas的第一个十分钟内容对新手而言已经比较饱和了,如果按照官方文档中的内容完全陈列就有些挂羊头卖狗肉的嫌疑。我们还是稳扎稳打比较舒服。

下面,请各位小伙伴自己亲自动手联系下相关操作,加深理解,如有问题,可在评论区交流和反馈。

需要Jupyter文件的伙伴也可留言索取,我计划把官方文档中的全部代码例子分三篇文章放出,以保证一起练习的效果。

学习!学习!学习!

标签: #jupyter怎么查看数据类型columns