看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
今后我们处理的数据基本上是 Pandas 的 DataFrame 和 Series,其中 DataFrame 是 Series 的容器,所以需要掌握数据生成方法。现在我们学习一下制造一些简单数据放入 DataFrame 和 Series,后边我们会单独讲解从文件如 Excel 中读取生成数据。
我们在使用 pandas 时,需要将导入:
import pandas as pd
这里我们给它取了一个别名 pd
, 起别名是因为 pandas 这个单词有点长,在代码中会经常出现,这样会简化些,减少代码量。别名可以自由取名,但 pd
是 pandas 的缩写,已经约定俗成,方便自己和别人能看懂你的代码,所以建议不要起别的名字。
如果出现 ModuleNotFoundError: No module named 'pandas'
错误,说明没有安装 pandas 模块,可参考 Python 环境搭建 的相关说明并使用 pip install pandas
安装。
如果执行导入库后,没有任务返回内容,说明库导入正常,可以用 pd
使用 pandas 了。
同样,有时如果需要 numpy 则用以下代码引入并起别名 np
import numpy as np
使用 pd.DataFrame()
可以创建一个 DataFrame,然后用 df 做为变量赋值给它。df
是指 DataFrame,也是约定俗成建议尽量使用。
df = pd.DataFrame({'国家': ['中国', '美国', '日本'],
'地区': ['亚洲', '北美', '亚洲'],
'人口': [14.33, 3.29, 1.26],
'GDP': [14.22, 21.34, 5.18],
})
df
'''
国家 地区 人口 GDP
0 中国 亚洲 14.33 14.22
1 美国 北美 3.29 21.34
2 日本 亚洲 1.26 5.18
'''
可以看到,我们成功生成了一个 DataFrame:
我们知道,DataFrame 可以容纳 Series,所以我们在定义 DataFrame 时可以使用 Series,同时也可以利用 numpy 的方法:
df2 = pd.DataFrame({'A': 1.,
'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'})
df2
'''
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo
'''
注:df.<TAB>
即输入变量名并输入 .
后按 tab 键会提示此对象的所有方法和属性,这是 IPython 的功能,这是一个通用的功能,所有的对象和变量都支持。
我们从上例 df
中取一列:
df['人口']
'''
0 14.33
1 3.29
2 1.26
Name: 人口, dtype: float64
'''
从 DataFrame 中选取一列就会返回一个 Series,当然选择多列的话依然是 DataFrame。下边我们单独创建一个 Series:
gdp = pd.Series([14.22, 21.34, 5.18], name='gdp')
gdp
'''
0 14.22
1 21.34
2 5.18
Name: gdp, dtype: float64
'''
我们生成了一个名叫 gdp
的 Series,我们没有指定索引,系统自动给我们补上 0、1、2 ... 作为索引。
上边我们定义了两种对象,对这两种对象,我们可以进行相关的操作,以下是两种类型的 describe
方法,用于对数据进行整体描述:
df.describe()
'''
人口 GDP
count 3.000000 3.000000
mean 6.293333 13.580000
std 7.033579 8.098988
min 1.260000 5.180000
25% 2.275000 9.700000
50% 3.290000 14.220000
75% 8.810000 17.780000
max 14.330000 21.340000
'''
gdp.describe()
'''
count 3.000000
mean 13.580000
std 8.098988
min 5.180000
25% 9.700000
50% 14.220000
75% 17.780000
max 21.340000
Name: gdp, dtype: float64
'''
最大值:
df.max()
'''
国家 美国
地区 北美
人口 14.33
GDP 21.34
dtype: object
'''
gdp.max()
# 21.34
查看类型:
type(s) # pandas.core.series.Series
type(df) # pandas.core.frame.DataFrame
所以,对于 Series 和 DataFrame 很多方法都适用,但计算的维度不一样。
在 pandas 中,DataFrame 和 Series 具有一些类似于字典的特性,这使得它们在操作和处理数据时非常方便。这些特性包括按键访问、键值对迭代等。下面我们详细讲解这些特性。详情: DataFrame 和 Series 的字典特性 。
更新时间:2024-08-07 18:04:03 标签:pandas series dataframe