#文件地址 file='a.xlsx' #文件 #引入包 import pandas as pd
#读取 data=pd.read_excel(file,sheet_name='sheetname') #读取excel data=pd.read_csv(file,sheet_name='sheetname') #读取csv #写入excel writer=pd.ExcelWriter(file) #适合写入多个sheet的时候,在to_excel里指定写入的sheet_name data.to_excel(writer,sheet_name='sheetname,index=None) #index=None 表示将会以数据本来的样子写入 writer.save()
data.head(n) #查看前n行,n可以不填,默认读取前5行 data.tail(n) #倒序查看n行,n可以不填,默认读取前5行 data.describe() #概要与描述性统计,包含计数,均值,标准差,最大值和最小值 data.columns.values #列索引组成的ndarray类型 data.index.values #行索引组成的ndarray类型 data.shape #返回行,列数
#丢弃缺失列 data.dropna() #丢弃有缺失的数据 data.dropna(how='all') #只丢弃全为缺失值的那些行 data.dropna(axis=1,how="all") #丢弃全为缺失值的那些列 data.dropna(axis=1) #丢弃有缺失值的列 data.dropna(axis=0,subset = ["col"]) # 丢弃col列中有缺失值的行 data.dropna(subset=['col']) #丢弃col列有缺失值的行 #填充缺失列 data.fillna(n) #使用常数n填充加 inplace=True 直接修改原data data.fillna({0:x,1:y,2:z}) #使用字典填充 data.fillna(method='ffill') #用前面的值来填充 data.fillna(method='bfill',limit=2) #使用后面的值来填充,limit限制个数 data.fillna(method="ffill",axis=1) #axis=” “修改填充方向 #格式转化 pd.to_numeric(data, errors='ignore') #转为数值,遇到不能转的就忽略 #备注 errors='coerce',可以将无效值强制转换为NaN data=pd.read_csv(file,dtype={'col':str}) #读取的时候就指定列转化 pd.to_datetime() #转化为时间 pd.to_timedelta() #转化为时间戳 data[['c1','c2']] = data[['c1','c2']].apply(pd.to_numeric)#多行转换
#读取单行单列 data.loc[n] #读取第n行 data['col'] #读取name=col的列 data.iloc[1] # 读取第n行 data.iloc[:,1] #读取第1列 #.iloc使用全是以0开头的行号和列号,不能直接用其它索引哦。而.loc使用的实际设置的索引和列名 #.iloc只能选取数据表里实际有的行和列,而.loc可以选取没有的行和列,赋值后就可以添加新行或者列。 #读取元素 data.loc[n]['col'] #第n-1行,col列 data.iloc[n](m] #第n-1行,m-1列 #读取多行多列 data.loc[[m,n]] #第m,n行 data[['col1','col2']] #第col1,col2列 data[m:n] #从第m行到第n行,加values返回ndarry类型
#遍历 for i in data.values: #遍历每一行 i[col_num] #取每一行的col_num列 for i in data['col']: #遍历col列,取i
#增加一列(eg:增加两列相除) data['col_new']=data['col1']/data['col2'] data.eval('col_new=col1/col2',inplace=True) data['col_new']=data.apply(lambda x:x['col1']/x['col2'],axis=1) data['col_new']=data.apply(lambda x:x[1]/x[2],axis=1) #修改列名 data.columns = ["new_name1", "new_name2"]#直接在原数据上修改 data.rename(columns={"old_name":"new_name"}, replace=True)#在原表上修改 data.insert(0, 'new_name', data.pop('old_name'))#先删除再插入,并且重新命名
#对一列去重统计多少个 data.groupby(['col']).col.nunique() #统计一列每个元素出现了多少次,去重有多少个 data['col'].value_counts() #按照某列,取最大的n个值的行 data.nlargest(n,'col') #按照某列对整个dataframe排序(True表示升序,False表示降序) data.sort('col',ascending=true)
#相关性计算 data.corr(method='Pearson', min_periods=n) 参数说明: method:可选值为{‘pearson’, ‘kendall’, ‘spearman’} pearson:Pearson相关系数来衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性数据便会有误差。 kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据 spearman:非线性的,非正太分析的数据的相关系数 min_periods:样本最少的数据量 返回值:各类型之间的相关系数DataFrame表格。
data['col'].str.contains('str') #返回行熟,bool
import json #引入包
for i in data['col]:
a=json.loads(i)
print(a['json_str'])