目录
一:数据读取
二:数据结构
三:数据检索
四:数据修改
五: 排序
数据准备:
pandas可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。
import pandas as pd
dir = 'path/'
df=pd.read_csv(dir+'test.csv')
df=pd.read_excel(dir+'test.xls')
df.head()
随机生成数据:
import numpy as np
data = np.random.rand(10,3)
df = pd.DataFrame(data, columns=["报名人数", "录取人数", "学费"])
df.head()
1:Series带索引的一维数组
Series的创建:
从列表创建:
value = [11, 23, 12]
df = pd.Series(value)
print(df.head())
从字典创建:
value = {"计算机": 5000, "历史": 7000, "艺术": 6000}
df = pd.Series(value)
print(df.head())
2: DataFrame
DataFrame是二维数组
从列表创建:
value = [[11,34,56],[44,67,34]]
df = pd.DataFrame(value,index=["历史","小艺术"],columns=["报名人数","录取人数","学费"])
print(df.head())
从字典创建:
value = [{"计算机": 5000, "历史": 7000, "艺术": 6000},{"计算机": 5000, "历史": 7000, "艺术": 6000}]
df = pd.DataFrame(value)
print(df.head())
3: 两种结构互转
Series转为DataFrame
value = {"计算机": 5000, "历史": 7000, "艺术": 6000}
df = pd.Series(value)
print(df.head())
DataFrame转为Series
value = [{"计算机": 5000, "历史": 7000, "艺术": 6000},{"计算机": 5000, "历史": 7000, "艺术": 6000}]
df = pd.DataFrame(value)
df["数学"]
获取指定行
print(df.loc[[1,3],:])
按范围获取列
print(df.loc[:,"专业":"录取人数"])
获取录取人数大于5000的
print(df[df["录取人数"] > 5000])
多条件
print(df[(df["录取人数"] > 5000) & (df["报名人数"] > 6000)] )
增加一行:
new_data = pd.DataFrame(
{
"专业":["经管"],
"报名人数":[6000],
"录取人数": [5700],
"学费": [6000],
}
)
df = pd.concat([df, new_data[:1]])
print(df)
增加一列:
df.insert(4,"报考率",[10,12,44,67,23,12])
print(df)
删除行:
df = df.drop([1, 2], axis=0)
删除列:
df = df.drop("学费", axis=1)
修改:
df.loc[1, "录取人数"] = 10000
按条件:
df.loc[df["录取人数"] > 5000, "学费"] = 20
按字段排序
df = df.sort_values(by="报名人数", ascending=False)
增加排名
df["录取排名"] = df.录取人数.rank(method='first', ascending=False)
df["录取排名"] = df["录取排名"].astype(int)
df.sort_values("录取排名")
print(df)