Pandas常用数据结构有两种:Series和DataFrame.这些数据结构构建在numpy数组之上,这意味着它们效率很高。
- 导入相关库
import numpy as np
import pandas as pd
- Series
Series是一个带有名称和索引的一维数组,既然是数组,肯定要说到的就是数组中的元素类型,在Series中包含的数据类型可以是整数、浮点,字符串,python对象等。包含了dict的特点。也非常像ndarray。
#存储了4个年龄:8/30/25/40
user_age = pd.Series(data=[18,30,25,40])
user_age.index = ["Tom", "Bob","Mary", "James"] 给索引加上名字
user_age.index.name = "name" 给索引列取个名字
user_age.name = "usre_age_info" 给Series取个名字
一个Series包括data、index、name属性。
- DataFrame
- 通过dict构建
index = pd.Index(data=["Tom", "Bob", "Mary", "James"], name="name")
data = {
"age": [18,30,25,40],
"city": ["Beijing", "Shanghai", "GuangZhou”, "ShenZhen"]
}
user_info = pd.DataFrame(data=data, index=index)
2.通过数组构建
data = [[18, "BeiJing"],
[30,"ShangHai"],
[25, "GuangZhou"],
[40, "ShenZhen"]]
columns = ["age", "city"]
user_info = pd.DataFrame(data=data, index=index, columns=columns)
3.访问行
user_info.loc["Tom"]通过索引名访问某一行
user_info.iloc[0]通过索引访问某一行
user_info.iloc[1:3]通过切片访问多行
4.访问列
user_info.age
user_info["age"]
user_info["city", "age"]
user_info["sex"] = "male"增加新列
user_info.pop("sex")删除列
user_info["sex"]=["male", "female", "male", "male"]
user_info.assign(age_add_one = user_info["age"] + 1)不就地更新,产生意个新的DataFrame
user_info.assign(sex_code=np.where(user_info["sex"]=="male", 1, 0))有选择更新列
4.常用操作
user_info.info()了解数据的基本情况
user_info.shape
user_info.T
user_info.values数据
user_info.age.max(),cumsum(),min(),
user_info.describe()显示数据指标
user_info.value_counts()
user_info.age.idmax()
user_info.city.map(),apply()
user_info.rename(columns={}, index={})