Pandas与Numpy的数据分析进阶题
# 导入基础库
# pip install pandas
# pip install numpy
import pandas as pd
import numpy as np
1. 从列表和字典创建numpy Serires
list_arr = [i for i in range(5)]
# [0, 1, 2, 3, 4]
df_arr = pd.Series(list_arr)
df_arr
# 使用 ord() 函数将字符转换为其对应的 ASCII 值
print(ord('a'))
# 97
dict_arr = {
i:j for i in ['a', 'b', 'c', 'd', 'e'] for j in range(1, 6) if ord(i) - j == 96}
# {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
df_arr = pd.Series(dict_arr)
df_arr
2. 基于字典数据和指定索引生成Dataframe
# 字典
data = {
'name': ['xiaowang', 'xiaozhang'],
'gender': ['F', 'M'],
'age': [23, 27]}
indexs = ['e1', 'e2']
df = pd.DataFrame(data, index=indexs)
df
3. 生成时间序列作为索引的Dataframe
# 生成时间序列(时间间隔为秒)
dates = pd.date_range('today', periods=3, freq='S')
# 从标准正态分布(均值为0, 标准差为1)中随机抽取数字,生成3行3列的二维数组
arr = np.random.randn(3,3)
colnames = ['d1', 'd2', 'd3']
df = pd.DataFrame(arr, index=dates, columns=colnames)
df
4. Dataframe的基础信息统计
# 显示Dataframe的基础信息,行的数量,列名及该列的数据类型
df.info()
# 打印每列的统计信息
df.describe()
5. Dataframe的基本操作
(1)生成随机数矩阵和添加列名
# 生成1~100范围的3行4列随机数矩阵
data = np.random.randint(1, 100, size=(3, 4))
df = pd.DataFrame(data)
# 添加列名
df.columns = ['c1', 'c2', 'c3', 'c4']
df
(2)使用iloc取出Dataframe的列数据
# 取出前3列数据
df1 = df.iloc[:, :3]
df1
(3)使用iloc取出Dataframe的行数据
# 取出前2行数据
df1 = df.iloc[:2, :]
df1
(4)取出Dataframe的指定列数据
# 取出指定列数据
df3 = df[['c1', 'c2']]
# df3 = df.loc[:, ['c1', 'c2']]
df3
(5)取出Dataframe指定索引及指定列数据
# 取出索引为0, 2的c1和c2列数据
df4 = df.loc[df.index[[0, 2]], ['c1', 'c2']]
df4
(6)取出Dataframe大于指定阈值的数据
# 取出指定c1列大于50的行
df5 = df[df['c1'] > 50]
df5
(7)取出Dataframe指定范围的数据
# 取出c1列值在30到40的行
df6 = df[