欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

程序员文章站 2022-06-05 18:59:23
...

Pandas系列目录如下:
Pandas数据分析①——数据读取(CSV/TXT/JSON)
Pandas数据分析②——数据清洗(重复值/缺失值/异常值)
Pandas数据分析④——数据规整2(数据拼接/透视)
Pandas数据分析⑤——数据分组与函数使用(Groupby/Agg/Apply/mean/sum/count)
Pandas数据分析⑥——数据分析实例(货品送达率与合格率/返修率/拒收率)
Pandas数据分析⑦——数据分析实例2(泰坦尼克号生存率分析)

数据规整是在数据清洗完毕后,将其调整成适合分析的结构,为后续的深入分析作准备,主要分为以下几类:

索引和列名调整: 设定新索引,筛选想要的列,更改列名
数据排序:根据索引或列进行排序
数据格式调整:更改数据类型,更改数据内容(去除空格标点符号/截取/替换/统一数据单位等),增加用于分析的辅助列
数据拼接:行堆叠和列拼接
数据透视:行或列维度转换

本篇先介绍前3种,其余下一篇介绍~~

一、索引和列名调整

1、索引
① 设定索引
一般会在建立Dataframe或Series是直接设定索引

obj2 = pd.Series([4, 7, 9, 10], index=['ni', 'ta', 'miss', 'kkaa']) 

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

data = {'stata': ['china', 'china', 'china', 'japan'],
        'pop': [1.3, 1.4, 1.5, 1.6],
        'year': [1990, 2010, 2001, 1988]}
frame = pd.DataFrame(data, index=['one', 'two', 'three', 'four'])  # 生成的Dataframe会自动分配索引

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
②修改索引,直接赋值给Index即可

frame.index=['1','2','3','4']
print(frame)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
③给索引命名

frame.index.name='my_index'
print(frame)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
②如何索引
两种方式:iloc,loc,前者是下标索引,后者是名字索引

frame = pd.DataFrame(np.arange(9).reshape(3, 3),
                     index=[1, 2, 4],
                     columns=['hoin', 'hui', 'dfs'])

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

print(frame.loc[[1,2], ['hoin', 'hui']])

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

print(frame.iloc[[1, 2], [0, 1, 2]]) 

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

print(frame.iloc[2])  # 仅取出第1行的数据

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

  print(frame.loc[:2, ['hui','hoin']]) # loc索引切片包含,但是iloc切片索引不包含

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
2、列调整
①筛选需要的列
在建立series和Datafram时通过columns字段写入

data = pd.read_csv("data.csv",encoding='gbk')
print(data)
data1 = pd.DataFrame(data,columns=['订单号','数量'])
print(data1.head())

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
②修改列名
如果对某个列名不满意,可以用rename的方式进行修改

data1.rename(columns={' 销售金额 ': '金额'},inplace=True)
print(data1.columns)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

二、数据内容调整

1、修改数据类型

print(data.dtypes)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

data['订单行'] = data['订单行'].astype(object)
print(data.dtypes)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
2、更改数据内容

①去除空格

frame = pd.DataFrame([[' 你 ' , ' 和', '他'],['都', '很 ', ' 棒']],
                     index=[1,2],
                     columns=['hoin', 'hui', 'dfs'])
print(frame)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

for i in range(len(frame.columns)):
    frame.iloc[:,i] = frame.iloc[:,i].str.strip()
print(frame)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
②替换字符

frame.dfs = frame.dfs.replace("他","他们")
print(frame)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
③截取部分字符

frame = pd.DataFrame([['你们真好' , '一起上课', '一起吃饭'],['我也一样', '非常', ' 棒']],
                     index=[1,2],
                     columns=['hoin', 'hui', 'dfs'])
for i in range(len(frame.columns)):
    frame.iloc[:,i] = frame.iloc[:,i].str[:2]
print(frame)

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)

三、数据排序

1、按索引排序

data = pd.read_csv("data.csv",encoding='gbk')
print(data.head())
print(data.sort_index(ascending=False).head())

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
2、按列值排序

print(data.sort_values(['销售时间','数量'],ascending=False).head())

Pandas数据分析③——数据规整1(索引和列名调整/数据内容调整/排序)
后续还会继续出numpy,matplotlib,机器学习等数据分析必备技能,感兴趣的小伙伴可关注下我喔