python进阶-pandas基本操作

pandas基本操作

介绍一种新的数据格式,csv

  • 纯文本,使用某个字符集,比如ASCII、Unicode等;
  • 由记录组成,典型的是每行一条记录;
  • 每条记录被分隔符分隔为字段;
  • 每条记录都有同样的字段序列。

1.读取csv文件:

df = pd.read_csv(r"C:\Users\liujie\Desktop\成绩表.csv")
print(df)

成绩表先在桌面上创建一下,保存时记得选择所有文件格式,编码格式为utf8,这样才能读取成功。不懂看这里:https://blog.csdn.net/weixin_43847614/article/details/90242979
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200517204251362.png
也可以选取行数,比如打印前两行:

print(df.head(2))

在这里插入图片描述

2.DataFrame

# 获取所有的列名
print(df.columns)
# 获取索引
print(df.index)
# 查看索引第一个
print(df.loc[0])

在这里插入图片描述

3.筛选

#筛选数学成绩大于90的
print(df[df.数学>90])
# 复杂筛选
print(df[(df.数学>80) & (df.语文>80) & (df.英语>80)])

在这里插入图片描述

4.排序

print(df.sort_values(['数学','语文','英语']).head())

在这里插入图片描述意思是按数学成绩排序,如果数学成绩相同就按语文排序,依次类推。head参数不填的话默认5个。

5.访问

访问的索引是1,也就是表格的第二位

# 按照索引定位
print(df.loc[1])

在这里插入图片描述如果我们想访问索引1就是表格中第一位怎么访问呢?
这里介绍下索引
创建一个字典:

# 索引
scores = {
    '英语':[90,87,87],
    '数学':[86,96,96],
    '姓名':['wang','li','sun']
}
df = pd.DataFrame(scores, index = ['one','two','three'])
print(df)

在这里插入图片描述
可以看到此时的索引已经变成了英文的one two three
如果再以df.loc[1]去访问,会报错
因为此时已经不存在数字索引了,所以不能通过数字索引去访问

print(df.loc['one'])

在这里插入图片描述
可以看到,以英文one去访问可以直接访问到表格的第一位
但是这样会比较麻烦,我们并不关心它的索引是多少,我们只想获取到这一条数据就行了,就可用到iloc函数

#实实在在的所谓的第几行
print(df.iloc[0])

在这里插入图片描述
这样就可以直接访问到第一条数据

还有ix函数,合并了loc和iloc的功能

# 访问多行
print(df.loc[:2])   #访问前三行
print(df.iloc[:2])  #实实在在的前两行

在这里插入图片描述

# 访问某一行,是错误的
# df[0]
# 访问多行数据是可以使用切片的
df[:2]

在这里插入图片描述
print(df.values)可以将所有数据以array的形式打印出来,因此array所有的操作都可以通过df.values操作。

# dataframe中的数组
print(df.数学.values)  #可以打印出所有的数学成绩
# 简单的统计
print(df.数学.value_counts())  #统计每个分数的人数
print(df['数学'])
print(df.数学)    # 只想获取数学成绩
print(df[['数学','语文']].head())   #想获取多列,此时是个表格,可以用head函数
new = df[['数学','语文']].head()
print(new*2)   #可以进行乘法操作

6.重点

def func(score):
    if score>=80:
        return "优秀"
    elif score>=70:
        return "良"
    elif score>=60:
        return "及格"
    else:
        return "不及格"

df['数学分类'] = df.数学.map(func)    #map这个函数可以根据我们现有的数据生成新的一列
print(df.head())

在这里插入图片描述
这仅仅是对数学分类,如果想对所有数据进行操作

# applymap对dataframe中所有的数据进行操作的一个函数
print(df.applymap(lambda x:str(x) +'-'))    #在所有数据后加个-

这样所有数据后面都会加个-

# apply函数,根据多列生成新的一个列的操作
df['new_score'] = df.apply(lambda x:x.数学 +x.语文, axis=1)
print(df.head(2))    #前几行
print(df.tail(2))    #最后几行

在这里插入图片描述
pandas中的dataframe的操作,很大一部分跟numpy中的二维数组的操作是近似的
不一一讲述了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Pandas是一个强大的数据分析和处理工具,可以帮助用户行数据操作、数据清洗、数据分析和可视化等任务。 头歌包括但不限于以下几个方面: 1. 数据清洗和预处理: - 使用Pandas的数据清洗功能,可以对数据行缺失值处理、重复值处理、异常值处理等操作,以保证数据的质量和准确性。 2. 数据分析和统计: - Pandas提供了丰富的功能,可以行数据的统计分析,比如计算平均值、中位数、标准差等统计指标,还可以行数据的排序、分组、聚合等操作,以便用户更好地理解数据的特征和分布。 3. 数据可视化: - Pandas可以轻松地将数据转换为各种图表,比如折线图、柱状图、散点图、饼图等,帮助用户更直观地展示和分析数据。用户可以使用Pandas的plot方法,设置不同的参数来绘制不同类型的图表。 4. 高级的数据操作: - Pandas还支持更多高级的数据操作,比如合并、拆分、透视表、数据透视等,以满足用户对数据处理的更高级需求。 5. 性能优化: - 使用Pandas行数据分析时,性能是一个重要的考虑因素。用户可以通过合理地选择Pandas的数据结构、使用向量化操作和利用并行计算等方法来提高代码的执行效率。 总之,通过学习和掌握Python Pandas的头歌,用户可以更好地利用Pandas行数据分析和处理,提高工作效率和数据处理的准确性。希望以上信息能够对您有所帮助。如果您有任何其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值