Python-Pandas的简单使用

Pandas数据处理

1.导入库

1 import numpy as np
2 import pandas as pd
3 import matplotlib.pyplot as plt

2.导入json文件

pandas的read_json方法将其转化为DataFrame格式

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同值的类型(数值,字符串,布尔值等);DataFrame既有行索引也有列索引,也可以看做是Series组成的字典(共用一个索引),和其他类似的数据结构比, DataFrame中面向行和面向列的操作基本上是平衡的;

DataFrame中的数据其实是以一个或多个二维块存放的(而不是列表、字典等一维数据结构), 虽然是以二维结构保存数据,但是仍然合一轻松地将其表示为更高维度的数据(层次化索引的表格型结构,这是pandas中许多高级数据处理功能的关键要素)

df = pd.read_json('/Users/zhaoluyang/Desktop/Python_全国JSON.json')

3.查看当前表的信息

1 df.index#查看行索引信息
2 df.columns#查看列信息
3 df.head()#默认查看前5行元素,括号内可任意指定数字。
4 df.tail()#默认指定最后5行元素,同样可指定数字。
5 df.info()#查看表整体信息。
6 df[['ZL_Job_id','工作地点']].head()#查看df表中'ZL_Job_id'和'工作地点'两列前5个元素。

 可以看见,总共有18326个行索引(18326行),15列columns分别为ZL_Job_id、公司名称、公司链接...

4.简单的数据规整

经过第3步查看发现导入的表中ZL_Job_id一列是乱序版的,并没有按照1、2、3...的次序排列。 看了下json原文件发现也是乱序的,但是为了看起来美观和统一,我需要把此列按正常序号排列, 然后将此列作为列索引。(因为这一列在mysql里就是我手动添加做索引来用的) 此时大致需要几个步骤:

1.将df中系统自动添加的索引替换成列ZL_Job_id。

2.将原来的‘ZL_Job_id’列删除。

3.给新的索引列排序。(也可以对数据列排序df.sort_values([‘ZL_Job_id’]))

扫描二维码关注公众号,回复: 2490014 查看本文章
1 df.index=df['ZL_Job_id']
2 del(df['ZL_Job_id'])
3 df1 = df.sort_index()#直接df.sort_index()可返回索引的结果,但之后df还是原来的结构
4 df1[['职位名称','工作地点']].head()

5.常用的函数示例

#qw表示在df表中column=工作经验的列中,【工作经验==不限】的次数

qw = df['工作经验'][df['工作经验']=='不限'].value_counts()

#直接用value_counts()统计工作经验字段各个值出现的次数,并画图展示。PS:查询结果是Series形式(<class 'pandas.core.series.Series'>)

df['工作经验'].value_counts().plot()

一些有用的函数

unique()、describe()、groupby()、zip()

df['Names'].unique()

结果:array(['Mary', 'Jessica', 'Bob', 'John', 'Mel'], dtype=object)

df['Names'].describe()

结果:
count 1000
unique 5
top Bob
freq 206
Name: Names, dtype: object

BabyDataSet = list(zip(names,births))
BabyDataSet

结果:[('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)]

猜你喜欢

转载自www.cnblogs.com/huohuohuo1/p/9398251.html