Pandas学习
一、Series一维带标签数组
1.Series数组创建
首先要导入pandas包:pip install pandas
①直接用series创建
a = pd.Series([1, 2, 3, 4, 5]) # value is in the Series
print(a)
输出结果:
0 1
1 2
2 3
3 4
4 5
dtype: int64
②同时创建标签index值
# The index is abcde, the correspond of value is 12345
b = pd.Series([1,2,3,4,5], index = list("abcde"))
print(b)
输出结果:
a 1
b 2
c 3
d 4
e 5
dtype: int64
③通过字典进行创建
#通过字典进行创建
c = {"name": "Santa", "年龄":"18岁", "性别":"女"}
d = pd.Series(c)
print(d)
输出结果:
name Santa
年龄 18岁
性别 女
dtype: object
④对数组的数据结构进行修改
print(a.astype(float))
输出结果;
0 1.0
1 2.0
2 3.0
3 4.0
4 5.0
dtype: float64
二、索引
1.通过index进行索引
print(d["name"]) #Santa
print(d[2]) #女
2.通过index进行一串索引(以0为起点)
e = list(d.index)[:2]
print(e)
输出:
['name', '年龄']
3.通过[[]]进行索引
e1 = d[["name","性别"]]
print(e1)
输出结果:
name Santa
性别 女
4.通过values进行索引(索引1就是第一个数字(以1为起点))
e2 = d.values
print(e2)
输出结果:
['Santa' '18岁' '女']
5.通过values进行索引多个量
e3 = list(d.values)[:1]
print(e3) #['Santa']
print(list(d.values)[:2]) # ['Santa', '18岁']
三、二维数组DateFrame的创建
1.确定一行的数据,进行赋值(可以少赋值)
t1 = [{"name":"张山", "age":19, "tel":"10088"},
{"name":"李四", "age":29, "tel":"14792"},
{"name":"王五", "age":25, "tel":"10637"}]
data1 = pd.DataFrame(t1)
print(data1)
输出结果:
name age tel
0 张山 19 10088
1 李四 29 14792
2 王五 25 10637
2.先确定一列的值,再进行赋值
t2 = {"name":["张山", "李四", "王五"],
"age":[19,30,28],
"tel":[10392, 38922, 43829]}
data2 = pd.DataFrame(t2)
print(data2)
输出结果:
name age tel
0 张山 19 10392
1 李四 30 38922
2 王五 28 43829
四、基本的索引
print("data2.index:\n",data2.index) # 行
print("data2.columns:\n",data2.columns) # 列
print("data2.values:\n",data2.values) # 值
print("data2.astype:\n",data2.astype) # 类型
print("data2.shape:\n",data2.shape) # 几行几列
print("data2.ndim:\n",data2.ndim) # 维度
样例输出如下
data2.index:
RangeIndex(start=0, stop=3, step=1)
data2.columns:
Index(['name', 'age', 'tel'], dtype='object')
data2.values:
[['张山' 19 10392]
['李四' 30 38922]
['王五' 28 43829]]
data2.astype:
<bound method NDFrame.astype of name age tel
0 张山 19 10392
1 李四 30 38922
2 王五 28 43829>
data2.shape:
(3, 3)
data2.ndim:
2
五、排列
默认是升序排列
df = data2.sort_values(by="age")
修改成降序排列(CTRL+B 显示原码,然后直接找到对应位置进行重新定义)
df = data2.sort_values(by="age", ascending=False) # 降序排列
六、取行或列
取前几行
df = df.head(2) # 取前2行
直接取行或者列
方括号放入数字,对行操作;放入字符串,对列进行操作
# 方括号放入数字,对行操作;放入字符串,对列进行操作
df1 = data2[:1]
df2 = data2["name"]
df3 = data2[:1]["name"]
七、loc与iloc
loc - 通过标签进行索引
iloc - 通过数字进行索引
df4 = data2.loc[:1,["name"]] # 索引第1,2行的name
print(df4)
df5 = data2.iloc[:1,:1] #索引第1,2行与第1,2列的数据
计算长度 - len()
df5 = data2["name"].str.len() # 先转换成字符串,后变成长度转换
print(df5)
分割
df6 = data2["name"].str.split("/")
原地修改数组
# dropna - 将所有的nan删除
# inplace - 原地修改数组
df7 = data2.dropna(axis=0, inplace=True)