阅读路线:
- 准备工作
- 生成对象
- 索引
- 选择需要的数据
- 运算
- 合并(merge)
- 分组(grouping)
- 重塑(reshaping)
- 数据透视表(pivot tables)
- pandas DataFrame里的操作
一、准备工作
import numpy as np
import pandas as pd
在进行下面的题目操作时,一定要先导入上面的两个数据分析包pandas、numpy
二、生成对象
1、如何用Python的列表创建一个series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
输出:
series是一个一维的标记数组,可以容纳任何数据类型(整数、字符串、浮点数、Python对象等)。必须记住,与Python列表不同,一个series总是包含相同类型的数据。
2.如何使用列表创建一个DataFrame
#导入pandas
import pandas as pd
#字符串列表
lst = ["Gamer47", "Shox", "Simple"]
#在列表中调用DataFrame构造函数
df = pd.DataFrame(lst)
输出:
3.如何使用Series字典对象生成DataFrame
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'})
输出:
4.如何在pandas中创建一个空的DataFrame
要创建一个完全空的pandas dataframe,我们使用以下操作:
import pandas as pd
df = pd.DataFrame()
输出:
三、查看数据:
已知有这样的数据,如何进行查看
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index = dates, columns = list('ABCD'))
输出:
1.如何查看头部数据
2.如何查看尾部数据
3.如何快速查看数据的统计摘要
4.如何查询索引和列名
四、索引
1.简述Pandas Index
在pandas中建立索引意味着简单地从DataFrame中选择特定地数据行和列。
pandas支持四种类型的多轴索引,它们是:
- DataFrame.[ ]:此函数称为索引运算符
- DataFrame.loc[ ]:此函数用于标签
- DataFrame.iloc[ ]:此函数用于基于位置或整数的
- DataFrame.ix[ ]:此函数用于基于标签和整数的
它们统称为索引器。这些是迄今为止索引数据最常见的方法。这四个函数有助于从DataFrame获取元素、行和列。
2.Pandas定义重新索引(reindexing)
重新索引会更改DataFrame的行标签和列标签。重新索引意味着使数据符合特定轴上给定的一组标签。
多个操作可以通过像这样的索引来完成:
- 重新排列现有数据以匹配一组新的标签。
- 在不存在标签数据的标签位置插入缺失值(NA)标记。
import pandas as pd
import numpy as np
N = 20
df = pd.DataFrame({
'A': pd.date_range(start='2016-01-01', periods = N, freq = 'D'),
'x': np.linspace(0, stop=N-1, num=N),
'y': np.random.rand(N),
'C': np.random.choice(['Low', 'Medium', 'High']),
'D': np.random.normal(100, 10, size=(N)).tolist()
})
df_reindexed = df.reindex(index=[0, 2, 5], columns=['A', 'C', 'B'])
print(df_reindexed)
输出:
3.如何设置索引
panda set_index()是一种将列表、序列或dataframe设置为dataframe索引的方法。
语法:
DataFrame.set_index(keys, inplace=False)
参数:
- keys:列标签或列标签/数组列表,需要设置为索引的列
- inplace:默认为False,适当修改DataFrame(不需要创建新对象)
改变索引列
在本例中,名称列被用作DataFrame的索引列
import pandas as pd
#读取csv文本文件到DataFrame变量中
data = pd.read_csv("employees.csv")
data.set_index("first_name", inplace=True)
#观察数据
data.head()
输出:
如输出图像所示,以前索引列是一系列数字
改变索引列后,索引列是给定的索引列
4.如何重置索引
Pandas Series.reset_index()
函数的作用是:生成一个新的DataFrame或带有重置索引的Series。
例1:使用Series.reset_index()函数重置给定Series对象的索引
#导入pandas包
import pandas as pd
#创建Series
sr = pd.Series([10, 25, 3, 11, 24, 6])
#创建索引
index_ = ['Coca Cola', 'Sprite', 'Coke', 'Fanta', 'Dew', 'ThumbsUp']
#设置索引
sr.index = index_
#打印series
print(sr)
输出:
现在,我们将使用Series.reset_index()函数来重置给定的series对象的索引
#重置索引
result = sr.reset_index()
#打印
print(result)
输出:
从输出中可以看到,该Series.reset_index()函数已将给定Series对象的索引重置为默认值。它保留了索引,并将其转换为列。
五、选择需要的数据
1.获取数据
1.1先创建数据
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))