前两篇博文写了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())#查看后五条数据

输出结果:

python 转置 np python转置dataframe_python 转置 np


.head()和.tail()函数都是默认查看5条数据,再来看一下转置

print(df.T)

输出结果:

python 转置 np python转置dataframe_python_02


转置的方法很简单,前面的博客也写过哦

(2)添加与修改

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

输出结果:

python 转置 np python转置dataframe_数据结构_03


下面我们再新增一列,同时再新增一行

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

输出结果:

python 转置 np python转置dataframe_机器学习_04


下面再来修改一下其中的部分数值

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

python 转置 np python转置dataframe_可视化_05


修改的时候我们之间索引到对应的行或列进行修改即可

(3)删除

删除有两种方法,del 和drop()删除某些值

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

输出结果:

python 转置 np python转置dataframe_机器学习_06


通过del 删除列

del df['a']
print(df)

输出结果:

python 转置 np python转置dataframe_可视化_07


通过drop()语句删除行

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

输出结果:

python 转置 np python转置dataframe_python_08


通过drop()删除列,这里需要加上axis=1

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

输出结果:

python 转置 np python转置dataframe_python 转置 np_09


观察以上输出结果我们可以看到,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)

输出结果:

python 转置 np python转置dataframe_数据结构_10


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))  # 降序

输出结果:

python 转置 np python转置dataframe_数据结构_11


再来看多列排序:

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']))

输出结果:

python 转置 np python转置dataframe_机器学习_12


多列排序的时候会按列的顺序进行排序

(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())

输出结果:

python 转置 np python转置dataframe_python 转置 np_13


今天就到这里啦~

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