Pandas1
一、Pandas基本数据结构
- pandas的作用是在Python中处理数据表。
两种常用基本结构:- Series,一堆数据,与numpy中的一对
array
类似。如excel里面的某一列。 - DataFrame,二维的表格型数据结构
- Series,一堆数据,与numpy中的一对
- series类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import pandas as pd
import numpy as np
s = pd.Series([1,3,5,np.nan,6,'8']) #代码示意 空元素必须用np.nan
print(s)
#输出
0 1
1 3
2 5
3 NaN
4 6
5 8
dtype: object
s.index #索引数据的行标签
s.values #值
s[::2] #切片 - DataFrame类型
1
2
3np.random.randint(0,10,(6,4))
pd.DataFrame(np.random.randint(0,10,(6,4)), index=range(6), columns=list('ABCD'))
#生成一个六行四列的表格,行0-5,列A-D,默认情况下,分别从0开始。
二、读取并查看数据
1 | df = pd.read_excel('111.xlsx') #从excel里面读取数据,但文件要在和python文件同一个根目录里,或者使用完整文件目录,但要注意字符串转译,在前面加r或者反斜线。 |
- 数据信息
1
2
3df.info() #查看数据信息
df.head() #查看前几行,默认五行
df.tail() #查看倒数几行,默认五行 - 下标、列标、数据
1
2df.index #查看下标,查看行名称
df.columns #查看列名称 - 行操作
1
2
3
4df.iloc[0:5] #取前五行,绝对顺序,从前往后的前五行
df.loc[0:5] #取index为0 1 2 3 4 5的行,如果没有,则取不出来。右边是闭区间。
df = df.drop([30000]) #注意,这里是删除了index为30000的行,不是相对的
df = df.drop([30000,31111]) - 列操作
1
2
3
4
5
6
7df.columns
df['名字'][:5] #查看名字这一列的前五个
df[['名字','类型']][:5] #查看名字和类型这两列的前五个
df['名称'] = range(len(df)) #添加一列
df = df.drop('名称',axis=1) #删除 axis取1为列 取0为行 注意必须赋值给df
df.loc[[index],[columns]] #通过标签选择数据
df.loc[[1,2,3,4,5],['评分','名字']] - 条件选择
1
2
3df['产地']=='中国'[::2] #返回布尔值的series
df[df['产地']=='中国'][::2] #布尔索引,参考格式
df[(df.产地=='中国')|(df.产地=='中国')&(df.评分>9)][::2] #多条件索引参考 - 排序
1
2df.sort_values(by='投票人数')[::2] #上小下大,升序
df.sort_values(by='投票人数',ascending=False)[::2] #降序 - 基本统计分析
1
2
3
4
5
6
7
8
9
10
11
12
13df.describe() #描述统计
df['投票人数'].max() #最大值
df['投票人数'].min() #最小值
df['投票人数'].mean() #平均值
df['投票人数'].median() #中位数
df['投票人数'].var() #方差
df['投票人数'].std() #标准差
df['投票人数'].sum() #求和
df['投票人数'].corr() #相关系数,协方差
len[df] #查看总共多少行
df['产地'].unique() #产地取出来形成一行数组,不重复
len(df['产地'].unique()) #算出来多少个产地
df['年代'].value_counts()[:5] #计算单一年份出现的次数,默认从大到小排序,前五个 - 数据保存
df.to_excel('111_@.xlsx',index=None)