Python数据分析数据可视化--看一眼就能学会的的Pandas数据结构DataFrame(下下)基本技巧

前两篇博文写了Dataframe的基本概念,创建方法和索引,今天最后写一下Dataframe的基本技巧,包括数据查看、转置、添加、修改、删除值、对齐、排序等
(1)数据查看、转置

df = pd.DataFrame(np.random.rand(16).reshape(8,2)*100,
                   columns = ['a','b'])#创建Dataframe
print(df)
print(df.head(2))#查看前两条数据
print(df.tail())#查看后五条数据

输出结果:
在这里插入图片描述
.head()和.tail()函数都是默认查看5条数据,再来看一下转置

print(df.T)

输出结果:

在这里插入图片描述
转置的方法很简单,前面的博客也写过哦
(2)添加与修改

df = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                   columns = ['a','b','c','d'])#创建Dataframe
print(df)

输出结果:
在这里插入图片描述
下面我们再新增一列,同时再新增一行

df['e'] = 10#新增‘e’列,数值全为10
df.loc[4] = 20#新增一行,数值全为20
print(df)

输出结果:
在这里插入图片描述
下面再来修改一下其中的部分数值

df['e'] = 20
df[['a','c']] = 100
print(df)

在这里插入图片描述
修改的时候我们之间索引到对应的行或列进行修改即可
(3)删除
删除有两种方法,del 和drop()删除某些值

df = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                   columns = ['a','b','c','d'])#创建Dataframe
print(df)

输出结果:
在这里插入图片描述
通过del 删除列

del df['a']
print(df)

输出结果:
在这里插入图片描述
通过drop()语句删除行

print(df.drop(0))
print(df.drop([1,2]))
print(df)

输出结果:
在这里插入图片描述
通过drop()删除列,这里需要加上axis=1

print(df.drop(['d'], axis = 1))
print(df)

输出结果:
在这里插入图片描述
观察以上输出结果我们可以看到,drop()函数会生成新的Dataframe,原Dataframe并不改变,而del 则不会生成新的Dataframe,会在原来的Dataframe基础上改变
(4)对齐


df1 = pd.DataFrame(np.random.randn(10, 4), columns=['A', 'B', 'C', 'D'])
df2 = pd.DataFrame(np.random.randn(7, 3), columns=['A', 'B', 'C'])
print(df1 + df2)

输出结果:
在这里插入图片描述
DataFrame对象之前的数据自动按照列和索引来对齐
(5)排序1–按值排序
可以按照Dataframe的数值进行排序,使用 .sort_values,这种方法同样适用于Series
首先来看单列排序

df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                   columns = ['a','b','c','d'])#创建Dataframe
print(df1)
print(df1.sort_values(['a'], ascending = True))  # 升序
print(df1.sort_values(['a'], ascending = False))  # 降序

输出结果:
在这里插入图片描述
再来看多列排序:

df2 = pd.DataFrame({'a':[1,1,1,1,2,2,2,2],
                  'b':list(range(8)),
                  'c':list(range(8,0,-1))})
print(df2)
print(df2.sort_values(['a','c']))

输出结果:
在这里插入图片描述
多列排序的时候会按列的顺序进行排序
(6)排序2–索引排序
除了按数值进行排序,也可以安装索引进行排序 .sort_index

df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                  index = [5,4,3,2],
                   columns = ['a','b','c','d'])
df2 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                  index = ['h','s','x','g'],
                   columns = ['a','b','c','d'])
print(df1)
print(df1.sort_index())
print(df2)
print(df2.sort_index())

输出结果:
在这里插入图片描述
今天就到这里啦~

我是一位211高校在读的本科生,是个耿直GIRL,对数据分析比较感兴趣,去年拿到了数学建模国家一等奖,今年参加了美赛还没结果,参加比赛选的题型都是大数据型,用过Excel,Spss,Lingo,MATLAB做数据分析,现在觉得Python比较高效,做数据可视化也非常方便,每天都在坚持学习,对Python数据分析和数据可视化有兴趣的可以关注我哦,每天都会更新的,跟我一起进步呀

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值