“GitModel统计分析”学习的Task01动手学Pandas-学习日志

学习日志


本文章为天池“GitModel统计分析”学习的Task01动手学Pandas-学习日志


import pandas as pd
import numpy as np
#1. 以 pd 别名导入 pandas 库
data = pd.read_csv("D:/python/ITEM/HousePrice of Boston/Data/boston.csv")
print(data.columns)
"""
读取 csv, excel, txt 文件
pd.read_csv()
pd.read_table()
pd.read_excel()
常用的公共参数(以上三个均可用) 
header=None 表示第一行不作为列名, 
index_col 表示把某一列或几列作为索引,索引的内容将会在第三章进行详述, 
usecols 表示读取列的集合,默认读取所有的列, 
parse_dates 表示需要转化为时间的列,关于时间序列的有关内容将在第十章讲解, 
nrows 表示读取的数据行数。

 txt 文件
 遇到分隔符非空格的情况, read_table 有一个分割参数 sep ,它使得用户可以自定义分割符号,进行 txt 数据的读取。例如,下面的读取的表以 |||| 为分割:
pd.read_table('data/my_table_special_sep.txt',sep=' \|\|\|\| ', engine='python') 
*read_table 的时候需要注意,参数 sep 中使用的是正则表达式,因此需要对 | 进行转义变成 \| ,否则无法读取到正确的结果。
"""

#2. 打印出pandas 库的版本信息
print(pd.__version__)
#3. 打印 pandas 依赖包及其版本信息
pd.show_versions()

"""
data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],
        'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],
        'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
        'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}

      labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
"""
#4. 使用数据 data 和行索引 labels 创建一个 DataFrame df
data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],
        'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],
        'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
        'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df = pd.DataFrame(data = data,index =labels)

#5. 显示该 DataFrame 及其数据相关的基本信息(提示:DataFrame 直接调用的方法)
print(df.index)
print(df.columns)
print(df.dtypes) # 返回的是值为相应列数据类型的Series
print(df.shape)
#6. 返回 DataFrame df 的前4行数据
print(df.head(4))
#7. 从 DataFrame df 选择标签为 animal 和 age 的列
print(df[['animal','age']])
#8.[3, 4, 8] 行中,列为 ['animal', 'age'] 的数据
print(df.iloc[[3, 4, 8]].loc[:, ['animal', 'age']])
#9. 选择列visits 大于 3 的行
print(df.loc[df['visits']>3])
#10. 选择 age 为缺失值的行
print(df[df['age'].isnull()==True].index)
print(df.isnull().any(axis=1))
#11. 选择 animal 是cat且age 小于 3 的行
print(df.loc[(df['animal']=='cat') & (df['age']<3)])
#12. 选择 age 在 24 之间的数据(包含边界值)
print(df[df['age'].between(2, 4, inclusive=True)])
"""
用法:Series.between(left, right, inclusive=True)
参数:
left:定义左边界的标量值
right:定义右边界的标量值
inclusive:一个布尔值,默认为True。如果为False,则在检查时将排除两个传递的参数。
返回类型:一个布尔序列,对于位于参数值之间的每个元素,为True。
"""
#13.'f' 行的 age 改为 1.5
df.loc['f','age']=1.5
print(df.loc['f','age'])
#14. 对 visits 列的数据求和
print(df['visits'].sum())
#15. 计算每种 animal age 的平均值
print(df.groupby('animal')['age'].mean())
"""
单类分组:A.groupby("")[""].describe().unstack()
多类分组;A.groupby( ["A","B"]).agg([np.sum, np.mean, np.std])
参考:https://blog.csdn.net/weixin_46713695/article/details/125697335
"""
#16. 新增一行数据 k,数据自定义,然后再删除新追加的 k 行
df.loc['k'] = df.loc['a'].values
df.drop('k', inplace=True)
#17. 统计每种 animal 的个数
df['animal'].value_counts()
#df.groupby('animal').size()

#18. 先根据 age 降序排列,再根据 visits 升序排列(结果 i 列在前面,d 列在最后面)
df.sort_values(by=['age', 'visits'], ascending=[False, True])
#19. 将 priority 列的 yes 和 no 用 True 和 False 替换
df['priority'] = df['priority'].map({'yes': True, 'no': False})
# df['priority'] = df['priority'].replace(to_replace=['yes', 'no'], value=[True, False])

#20. 将 animal 列的 snake 用 python 替换
df['animal'] = df['animal'].replace(to_replace='snake', value='python')
#21. 对于每种 animal 和 visit,求出平均年龄。换句话说,每一行都是动物,每一列都是访问次数,其值是平均年龄(提示:使用数据透视表)
df.pivot_table(index='animal', columns='visits', values='age', aggfunc='mean')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值