Pandas基础
记录使用Pandas过程中踩过的坑。
感谢相关参考网页。请见参考文献。
1引言
入门Python基础语法,如果一头扎进《利用Python进行数据分析》这本经典之中,硬着头皮啃完之后,好像自己什么都会了一点,然而实际操作起来既不知从何操起,又漏洞百出。
至于原因嘛,理解不够,实践不够是两条老牌的拦路虎,只能靠自己来克服。
Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集。它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas操作,都是基于这些表和列进行的操作。
2创建、读取和存储
- 创建
建立如下表格
第一步一定是先导入pandas库——import pandas as pd
构造DataFrame最常用的方式是字典+列表,语句很简单,先是字典外括,然后依次打出每一列标题及其对应的列值(此处一定要用列表),这里列的顺序并不重要。
df01 = pd.DataFrame({'工资': [1000, 2000, 3000, 400],
'绩效分': [60, 84, 98, 91],
'备注': ['不及格', '良好', '优秀', '最佳']},
index = ['老王', '小刘', '小赵', '老龚']
)
如果在创建时不指定index,系统会自动生成从0开始的索引。
- 读取
相关文件数据直接读进PANDAS中进行操作,这里介绍两种非常接近的读取方式,一种是CSV格式的文件,一种是EXCEL格式(.xlsx和xls后缀)的文件。
读取csv
csvfile = os.path.join('z:\\', 'z', '样例目录', '样例数据.csv')
df03 = pd.read_csv(csvfile, engine = 'python')
print(df03.head(10))
读取xls文件
xlsfile = os.path.join('z:\\', 'z', '样例目录', '样例文件.xlsx')
df04 = pd.read_excel(xlsfile)
print(df04.head(8))
- 存储
df03.to_csv('xxx.csv')
df04.to_excel('xxx.xlsx')
查看数据
-
查看数据,掐头看尾
df.head() df.tail()
-
格式查看
df.info()
-
统计信息概览
df.describe()
其中count是统计每一列的有多少个非空数值,mean、std、min、max对应的分别是该列的均值、标准差、最小值和最大值,25%、50%、75%对应的则是分位数。
-
列的基本处理方式
增、删、选、改。
温馨提示:使用Pandas时,尽量避免用行或者EXCEL操作单元格的思维来处理数据,要逐渐养成一种列向思维,每一列是同宗同源,处理起来是嗖嗖的快。
1)增
增加一列,用df[‘新列名’] = 新列值的形式,在原数据基础上赋值即可:df02['新增的列'] = range(5, len(df02) + 5)
2)删
用drop函数制定删除对应的列,axis = 1表示针对列的操作,inplace为True,则直接在源数据上进行修改,否则源数据会保持原样。df05 = df02.drop('新增的列', axis = 1, inplace = False) df02.drop('老王', axis = 0, inplace = True)
3)选:
选一列,df[‘列名’]即可
选多列,df[[‘第一列’,‘第二列’,‘第三列’…]]
4)改:
df[‘旧列名’] = 某个值或者某列值 -
常用数据类型及操作
1)字符串
Pandas中字符串的操作和原生字符串操作几乎一毛一样,唯一不同的是需要在操作前加上".str"。
2)数值型df02['结果'] = df02['工资'] * df02['绩效分'] * 0.01 df02['结果'] = df02['工资'].str.astype(float) * df02['绩效分'].str.astype(float) * 0.01
3)时间类型
df02['日期'] = pd.to_datetime(df02['新增列2'])