任务3.2 掌握DataFrame的常用操作

任务3.2 掌握DataFrame的常用操作

微信公众号:AI立智纪元
2023-10-09 / 0 评论 / 168 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年10月18日,已超过462天没有更新,若内容或图片失效,请留言反馈。
# 代码3-9
from sqlalchemy import create_engine
import pandas as pd
# 创建数据库连接
engine = create_engine('mysql+pymysql://root:1234@127.0.0.1:3306/testdb?charset=utf8') 
musicdata = pd.read_sql_table('musicdata', con=engine)
print('音乐行业收入信息表的索引为:', musicdata.index)

print('音乐行业收入信息表的所有值为:\n', musicdata.values)

print('音乐行业收入信息表的列名为:\n', musicdata.columns)

print('音乐行业收入信息表的数据类型为:\n', musicdata.dtypes)



# 代码3-10
# 查看DataFrame的元素个数、维度数、形状
print('音乐行业收入信息表的元素个数为:', musicdata.size) 
print('音乐行业收入信息表的维度数为:', musicdata.ndim)
print('音乐行业收入信息表的形状为:', musicdata.shape)


# 代码3-11
print('音乐行业收入信息表转置前形状为:', musicdata.shape)
print('音乐行业收入信息表转置后形状为:', musicdata.T.shape)


# 代码3-12
# 使用字典访问的方式取出musicdata中的某一列
format = musicdata['format']
print('音乐行业收入信息表中的format的形状为:', format.shape)


# 代码3-13
# 使用访问属性的方式取出musicdata中的number_of_records
number_of_records = musicdata.number_of_records
print('音乐行业收入信息表中的number_of_records的形状为:', number_of_records.shape)


# 代码3-14
metric5 = musicdata['metric'][:5]
print('音乐行业收入信息表中的metric前5个元素为:\n', metric5)


# 代码3-15
format_metric = musicdata[['format', 'metric']][:5]
print('音乐行业收入信息表中的format和metric前5个元素为:\n', format_metric)


# 代码3-16
musicdata5 = musicdata[:][1:6]
print('音乐行业收入信息表的1~6行元素为:\n', musicdata5)


# 代码3-17
print('音乐行业收入信息表中前5行数据为:\n', musicdata.head())

print('音乐行业收入信息表中后5行元素为:\n', musicdata.tail())


# 代码3-18
format1 = musicdata.loc[:, 'format']
print('使用loc()方法提取format列的size为:', format1.size)

format2 = musicdata.iloc[:, 3]
print('使用iloc()方法提取第3列的size为:', format2.size)


# 代码3-19
format_metric1 = musicdata.loc[:, ['format', 'metric']]
print('使用loc()方法提取format和metric列的size为:', format_metric1.size)    

format_metric2 = musicdata.iloc[:, [1, 3]]
print('使用iloc()方法提取第1和第3列的size为:', format_metric2.size)


# 代码3-20
print('列名为format和metric的行名为3的数据为:\n',
      musicdata.loc[3, ['format', 'metric']])

print('列名为format和metric行名为2,3,4,5,6的数据为:\n',
      musicdata.loc[2: 6, ['format', 'metric']])

print('列位置为1和3,行位置为3的数据为:\n', musicdata.iloc[3, [1, 3]])

print('列位置为1和3,行位置为2,3,4,5,6的数据为:\n',
      musicdata.iloc[2: 7, [1, 3]])


# 代码3-21
# 传入表达式
print('musicdata中metric为“Units”的format为:\n',
       musicdata.loc[musicdata['metric'] == 'Units', ['format', 'metric']])

print('musicdata中metric为“Units”的第1、4列数据为:\n',
     musicdata.iloc[musicdata['metric'] == 'Units', [1, 4]])


# 代码3-22
print('musicdata中metric为“Units”的第1、4列数据为:\n',
      musicdata.iloc[(musicdata['metric'] == 'Units').values, [1, 4]])


# 代码3-23
# 将format值为CD的变换为数值1
print('更改前musicdata中format为CD的数据为:\n',
      musicdata.loc[musicdata['format'] == 'CD', 'format'])
musicdata.loc[musicdata['format'] == 'CD', 'format']=1
print('更改后musicdata中format为1的数据为:\n',
     musicdata.loc[musicdata['format'] == 1, 'format'])


# 代码3-24
# 转换为时间序列数据
dates = pd.to_datetime(musicdata['date'])
# 建立月份列
musicdata['month'] = dates.map(lambda x: x.month)
# 查看前5行
print('musicdata新增列month的前5行为:\n', musicdata['month'].head())


# 代码3-25
musicdata['day'] = 15
print('musicdata新增列day的前5行为:\n', musicdata['day'].head())


# 代码3-26
print('删除day前musicdata的列索引为:\n', musicdata.columns)
musicdata.drop(labels='day', axis=1, inplace=True)
print('删除day后musicdata的列索引为:\n', musicdata.columns)


# 代码3-27
print('删除1~3行前musicdata的长度为:', len(musicdata))
musicdata.drop(labels=range(1, 4), axis=0, inplace=True)
print('删除1~3行后musicdata的长度为:', len(musicdata))


# 代码3-28
import numpy as np
print('音乐行业收入信息表中number_of_records的平均值为:', 
      np.mean(musicdata['number_of_records']))

# 代码3-29
print('音乐行业收入信息表中number_of_records的平均值为:', 
      musicdata['number_of_records'].mean())


# 代码3-30
print('音乐行业收入信息表value_actual的描述性统计为:\n',
     musicdata['value_actual'].describe())


# 代码3-31
print('音乐行业收入信息 表format频数统计前6行结果为:\n',
     musicdata['format'].value_counts()[:6])


# 代码3-32
musicdata['metric'] = musicdata['metric'].astype('category')
print('音乐行业收入信息表metric列转变数据类型后为:',
   musicdata['metric'].dtypes)  


# 代码3-33
print('音乐行业收入信息表metric的描述统计结果为:\n',
    musicdata['metric'].describe())


2

评论 (0)

取消