一)安装Pandas库
使用之前确保已经安装了Pandas库,Pycharm有非常简单的操作,将下面代码粘贴到Pycharm的第一行,然后安ALT+回车,install即可。
import pandas as pd |
二)基本类型:
Series | 相当于excel一列数据。其实就是一个列表类型 | |
DataFrame | 相当于一个excel表格,每一列元素都是Series类型 |
一、Series使用
使用时只需要传入一个列表即可,本质就是一个列表,区别在于其索引可以不是0~n,可以自定义索引。
import pandas as pd
series = pd.Series([1, 2, 3, 4], index=['one', 'two', 'third', 'forth'])
print(series)
print(series[0])
print(series['one'])
构造方法的index: | 设置自定义的索引类型 | |
访问:1、切片访问。2、s[索引] 3、s[自定义索引] | ||
追加元素:x.append(序列) | 追加一个元素也必须是[ ]序列。x.append(['2']) | |
获取全部值:x.values | 可以通过in的方法判断其是否在里面 | |
删除目标元素:主要是通过[条件来实现的] | s[2!=x.values]删除里面为2的元素 | |
删除某个位置的:x.drop(索引 或者 自定义索引) | ||
修改自定义索引:x.index=[自定义索引列表] | ||
根据索引进行排序: |
二)DataFream类型
DataFream,我们只需要将其看成一个excel表即可,也就是一个二维数组。
- 构造方法:最简单的就是传入一个字典类型进行构造,key表示列名,value表示每一列的数据值。
访问数据:
at是访问数据的一个元素,iloc是获得一个dataFrame表格,但是at可以支持行自定义索引访问 |
DataFrame类型支持切片访问数据,仍然是左开右闭 |
示例代码:
import pandas as pd
import numpy as np
# np.nan表示是一个空数据
# index属性是给每一行起索引名称
df = pd.DataFrame({'age': [1, np.nan, 3]
, "area": ['BJ', 'SH', 'HZ']
, "name": ['Lisi', 'Wang', 'Zhang']}
, index=['first', 'second', 'third'])
print(f"DataFrame类型为:\n{df}\n")
print(f"最后两列数据为:\n{df[1:3]}\n")
print(f'SH为起点,Zhang为终点的数据\n{df.iloc[1:3, 1:3]}\n')
print(f'索引访问表格第一个数据为\n{df["age"][0]}\n')
print(f'at访问数据为:\n{df.at["first", "age"]}')
其他操作:
修改行索引名称:右边可以是列表也可以是range参数 | df.index= |
修改列索引名称:参数与行同 | df.columns= |
删除行:axis参数必须等于0,如果没有设置行索引可以通过0123选择删除某一行,若设置了行索引必须通过行索引名称删除。 | df =df.drop("行索引",axis=0) |
删除列:参数是列名,axis必须是1 或通过df[’列名‘]删除 | df =df.drop("列索引",axis=1) del df['列索引名'] |
添加列:直接通过字典的方式添加即可 | df['新列名']=新数据 |
获取列数: | df.shape[1] |
获取行数: | df.shape[0]或len(df) |
代码 :
import pandas as pd
import numpy as np
# np.nan表示是一个空数据
df = pd.DataFrame({'age': [1, np.nan, 3]
, "area": ['BJ', 'SH', 'HZ']
, "name": ['Lisi', 'Wang', 'Zhang']}
)
# 删除特定行
df = df.drop(1, axis=0)
print(df)
print(f'列数:{df.shape[1]}')
print(f'行数:{df.shape[0]}')
print(f'行数:{len(df)}')
# 删除特定列
del df['age']
# 添加列
df['new'] = [i for i in range(1, 3)]
# 添加行
df_new = pd.DataFrame({"area": [1, 2], "name": [3, 4], "new": [7, 8]})
df = df.append(df_new, ignore_index=True) # ignore_index索引从0开始重新定义
# 索引从1开始重新定义:
df.index = range(1, len(df) + 1)
print(df)