一、数据读取
1. pd.read_csv()/df.to_csv()
2. pd.read_excel()/df.to_excel():可以写到具体的sheet
3. pd.read_json()/()df.to_json()
4. pd.read_html():返回列表形式,列表中数据为数据帧
5. pd.read_clipboard()
6. 数据库读取: import pymysql from sqlalchemy import create_engine import sqlalchemydb= pymysql.connect(host="localhost",user="root",password="230400",db="test",port=3306) engine = create_engine('mysql+pymysql://root:230400@localhost/test?charset=utf8') df.to_sql('', engine,index=False,if_exists='replace') #保存 engine = create_engine('mysql+pymysql://root:230400@localhost/test?charset=utf8') pd.read_sql('', engine)#读取
二、数据查看
1. df.head()/df.tail()
2. df.sample():随机采样
3. df.shape:形状
4. df.info():缺失情况,数据类型
5. df.describe():统计描述性信息,可查看数值型和类别型
6. df.T:转置
7. df.values:值,数组
8. df.index:行索引
9. df.columns:列索引
10. df.dtypes:数据类型
三、索引设置和修改
1. df.set_index():将某列设置索引
2. df.reset_index():恢复默认索引
3. df.reindex():重新索引
4. df.index=[] #覆盖
5. df.columns=[] #覆盖
6. df.rename(columns = {'':''}, inplace=True):修改某列的名字
四、缺失值和重复值处理
1. df.isnull()/df.notnull():缺失值判断
2. df.isnull().sum()
3. df.dropna():删除,指定某列
4. df.fifillna():填充
5. df.duplicated():重复值
6. df.duplicated().sum()
7. df.drop_duplicates():重复值删除
8. df.replace():替换
五、选择和过滤
1. df['A']:选择列
2. df.loc['a':'c'];选择行,显示索引,两边闭合
3. df.loc['a':'c',['A','C']]
4. df.loc['a':'c','A':'C']
5. df.iloc[3:5]
6. df.iloc[1:3,2:4]:隐式,左闭右开
7. df[df['A'].notull()] #选择A列非空的所有行
8. df.loc[df['A']>0,df.loc['a']>0] #a行大于零的所有列,A列大于0的所有行
六、行列的增加和删除
1. df.loc['d']=[4,4,4]:增加行
2. df['four']=[3,4,5]:增加列
3. df.drop(['one','two'],axis=0)
4. df.pop()
5. df.insert() :插入
七、拼接与合并
1. df = df.append(df1):纵向拼接
2. pd.concat([df1, df2], axis=1):可以横向拼接和纵向拼接
3. pd.merge(left, right, on='key'):主键合并 4. df1.join(df2)
八、统计和排序
1. S.value_counts() :计数
2. S.nlargest()# .nsmallest
3. S.unique():唯一值,取值
4. S.nunique():取值数量
5. df.nlargest(2,'A')
6. df.sum()/df.mean()/df.var()/data.count():默认按照列进行处理
7. df.sort_index():按照索引(行索引和列索引)排序
8. df.sort_values():按照值排序,多重排序
九、重塑与轴向旋转
1. df.stack()
2. df.unstack()
3. df.pivot(index=None, columns=None, values=None)
十、数据运算
1. s1+s2 2. df1+df
2:索引自动对齐
3. s.map() 映射
4. s.apply()
5. df.apply()
6. df.applymap()
十一、数据类型变换
1. s.astype(str)
2. pd.to_numeric()
3. pd.to_datetime():转换为时间戳
十二、分组运算
1. df.groupby().mean() #std,var,min,max,sum
2. df.groupby().apply(lambda x: ): 分组填充;分组排序,返回排序后的前n
3. df.groupby().agg([np.mean]) #标准的函数,std,var,min,max
4. df.groupby().agg([ptp])#自定义函数
5. df.groupby().agg([np.mean,ptp]) #多个聚合函数
6. df.pivot_table() #透视表,先groupby,再求mean,可以指定
7. pd.crosstab() #交叉表,统计的是分组的频率
十三、字符串序列操作
1. s.str.len() #字符串长度
2. s.str.lower() #.upper().title() .capitalize() .swapcase()
3. s.str.get(2) #返回元素
4. s.str.fifind('e')#s.str.index('')#返回索引
5. s.str.fifindall("") #正则表达式提取
6. s.str.match("[a-d]")#判断是否匹配
7. s.str.islower()#.isupper().isspace().isalpha().isnumeric()
8. s.str.startswith()#.endswith()
9. s.str.contains()
10. s.str.ljust()#.rjust().center()
11. s.str.strip()
12. str.replace(regex=False)
13. s.str.split() #split() 切分字符串
14. s.str.slice(1,3)#切片
15. s.str.cat(sep=' ')
16. s.str.repeat()
17. s.str.count()
十四、时间序列处理
1. pd.Timestamp(1594282374.596097,unit='s')#处理单个
2. pd.to_datetime(["2019-12-10","2019/12/11","2019/12/12"])#处理序列
3. pd.date_range('2011-1-20', '2011-1-30',freq='D') #产生序列
4. s.dt.year()#.month.day.date.weekday.time.
5. df.loc["2017"]#选择
6. df.resample()#重采样
7. pd.Timedelta('02:05:00').seconds/3600 #Timedelta对象有属性:weeks、days、seconds、 milliseconds、microseconds和nanoseconds等








暂无数据