pandas的DataFrame常见操作以及drop_duplicates、concat和groupby操作

代码基于jupyter编辑器实现,实现了pandas的DataFrame常见操作以及drop_duplicates、concat和groupby操作

1. 引入依赖文件,并定义数据
定义数据

import numpy as np
import pandas as pd

data = DataFrame(np.arange(16).reshape(4,4),index = list("ABCD"),columns=list('wxyz'))

print(data)

输出:
在这里插入图片描述

2. 取前两行,中间两行数据

print(data[0:2])       #取前两行数据
print(data[1:3])       #取中间两行数据

输出:
在这里插入图片描述

3. 求出一共多少行,多少列

print(len(data))              #求出一共多少行
print(data.columns.size)      #求出一共多少列

输出:
在这里插入图片描述
4. 行索引名称,列索引名称

print(data.columns)        #列索引名称
print(data.index)          #行索引名称

输出:

5. 取行数据

print(data.loc['B'])            #取第2行数据,参数为标签
print(data.iloc[1])            #取第2行数据,参数为行号

输出:
在这里插入图片描述
6. 取列数据

print(data['x'])      #取列索引为x的一列数据

输出:
在这里插入图片描述
7. 按标签取特定行与特定列

print(data.loc[:,['x','z'] ])          #表示选取所有的行以及columns为x,z的列;
print(data.loc[['A','B'],['x','z']])     #表示选取'A'和'B'这两行以及columns为x,z的列的并集

输出:
在这里插入图片描述
8. 按行号、列号取特定行与特定列

print(data.iloc[1:3,1:3])                  #数据切片操作,切连续的数据块
print(data.iloc[[0,2],[1,2]])              #即可以自由选取行位置,和列位置对应的数据,切零散的数据块

输出:
在这里插入图片描述
9. 取特定条件下的行与列

print(data[data>2])         #表示选取数据集中大于2的数据
print(data[data.x>5])       #表示选取数据集中x这一列大于5的所有的行

输出:
在这里插入图片描述
10. 取满足条件下的行

a1=data.copy()
print(a1)
print a1[a1['y'].isin(['6','10'])]    #表显示满足条件:列y中的值包含'6','10'的所有行。

输出:
在这里插入图片描述
11. 求均值以及次数

print(data.mean())                 #默认对每一列的数据求平均值;若加上参数a.mean(1)则对每一行求平均值;
print(data['x'].value_counts())    #统计某一列x中各个值出现的次数:

输出:
在这里插入图片描述
12. drop_duplicates:去除重复项

方法:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

参数:

这个drop_duplicate方法是对DataFrame格式的数据,去除特定列下面的重复行。返回DataFrame格式的数据。

  • subset : column label or sequence of labels, optional
    用来指定特定的列,默认所有列

  • keep : {‘first’, ‘last’, False}, default ‘first’ 删除重复项并保留第一次出现的项

  • inplace : boolean, default False 是直接在原来数据上修改还是保留一个副本

13. concat:数据合并与重塑

方法:

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
       keys=None, levels=None, names=None, verify_integrity=False)

常用参数说明 :

objs: series,dataframe或者是panel构成的序列lsit
axis: 需要合并链接的轴,0是行,1是列
join:连接的方式 inner,或者outer

  • 相同字段的表首尾相接
# 现将表构成list,然后在作为concat的输入
In [4]: frames = [df1, df2, df3]
In [5]: result = pd.concat(frames)

在这里插入图片描述
要在相接的时候在加上一个层次的key来识别数据源自于哪张表,可以增加key参数

In [6]: result = pd.concat(frames, keys=['x', 'y', 'z'])

在这里插入图片描述

  • 横向表拼接(行对齐)

参数: axis

当axis = 1的时候,concat就是行对齐,然后将不同列名称的两张表合并

In [9]: result = pd.concat([df1, df4], axis=1)

在这里插入图片描述

参数: join

加上join参数的属性,如果为’inner’得到的是两表的交集,如果是outer,得到的是两表的并集。

In [10]: result = pd.concat([df1, df4], axis=1, join='inner')

在这里插入图片描述

14. groupby:数据的分组以及分组后地组内运算

  • 引入依赖文件,并定义一个数据
import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 1, 2, 2],
                    'B': [1, 2, 3, 4],
                    'C': np.random.randn(4)})

df

输出:
在这里插入图片描述

  • reset_index() 表示重新设置索引
df.groupby(['A','B']).sum().reset_index()

输出:
在这里插入图片描述

  • agg传进来的统计特征:按照 B 这一列作聚合,C 这一列作统计
df = df.groupby('B')['C'].agg(['min','max','mean','sum','count','std','median']).reset_index()        # reset_index()是为了重置索引项

df

输出:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值