准备工作
导入库:import pandas as pd
读取文件:df=pd.read_csv(”文件路径“)
导出文件:df.to_excel(excel_writer=r"路径")
查询部分数据:df.head() 默认前5行
查询尾部数据:df.tail()默认后5行
查询当前数据信息:df.info()
查询数据索引信息:df.index
查询数据列名:df.columns
查询数据值:df.values
数据处理
获取某列数据:df[“列名”]
将某列作为索引:df=df.set_index(‘列名’)
将取出的数据进行运算
age=df[‘age’]
age=age+/-/* N
age.mean()
age.min()
统计数据的各项数据指标:df.describe()
索引
传入多列数据:df=df[[‘列名’,‘列名’]]
传入指定列:
loc
通过行标签定位传入数据:df=df.loc[0]
通过切片传入多行数据:df=df.loc[0:]
传入某行某列数据:df=df.loc[0,[‘列名’,‘列名’]]
只传入某列:df=df.loc[: , [‘c’]]
注释:当然获取某列数据最直接的方式是df.[列标签],但是当列标签未知时可以通过这种方式获取列数据。需要注意的是,dataframe的索引[1:3]是包含1,2,3的,与平时的不同。
iloc
通过行号获取行数据:df.iloc[1] 注:通过行标签索引会报错
同样通过行号可以索引多行:df.iloc[0:]
索引列数据:df.iloc[:,[1]]
ix
结合前两种的混合索引,既可以通过行号,又可以通过行标签获取数据。 但要被遗弃
将某列作为索引 : df=df.set_index(‘列名’)
将布尔类型作为索引:筛选数据:df[df[‘某列’] >/</=/== 条件]
统计某条件下的数据特征
统计性别为男性的年龄的均值 : df.loc[df[‘sex’]==‘male’,‘age’].mean()
判断值是否在某个集合中 : s.isin([1,2,3])
返回与某个集合内匹配索引对应的值 : s[s.isin([1,3,4])]
多重索引 : s2=pd.Series(np.arange(6),index=pd.MultiIndex.from_product([0,1],[‘a’,‘b’,‘c’]]))
返回多重索引下的值 : S.iloc[s2.index.isin([1,‘a’),(0,‘b’)])]
where 操作