一、pandas显示设置
import pandas as pd
pd.options.display.max_rows=999 # 设置显示所有行,默认为60行
pd.set_option('display.max_columns', None) # 显示所有列
pd.set_option('display.min_rows', None) # 显示所有行
pd.set_option('max_colwidth', 100) # 设置value的显示长度为100,默认为50
二、pandas拥有的方法
- Series
-
pd.Series({'a': 1, 'b':2}) # 返回一个Series数据
-
- DataFrame
-
pd.DataFrame({'列名1': '列值1', '列名2': '列值2'}, index=[0]) # 生成DataFrame数据, 字典入参时必须设置index
-
-
pandas读数据的方法
-
''' on_bad_lines和error_bad_lines都是跳过错误的行,error将来的版本会舍弃 sep='\t'设置分隔符, encoding='utf-8'设置编码格式, header='infer'默认, 选取数据的第一行为列名 header=1设置第二行为列名, names设置列名, index_col指定某列为行索引, set_index也可以设置行索引 usecols指定读取的字段, prefix给列名加前缀, squeeze=True表示只读取一列时返回Series数据 dtype={'id': str}设置id列为字符串类型, skiprows过滤行(可以是lambda函数), true_values|false_values新增result列, skip_blank_lines跳过空白行 parse_dates指定某些列为时间类型, date_parser转化时间格式,配合parse_dates使用 ''' pd.read_csv('data.csv', on_bad_lines='skip', error_bad_lines=False) ''' 读取excel文件 sheet_name选择子表sheet,默认是0,None返回全部sheet的字典,str:sheet名字, int: 第几个sheet,list: [0, 'sheet名']返回字典 header指定第几行为列索引, index_col指定某列为行索引 na_values: 0, '空值', ['空值', 0], {'列名': ['空值', 0]} converters={'a': lambda x: x+1} 值转换函数 ''' pd.read_excel('data.xlsx') ''' io=url, header=0使用第一行作为列索引 match字符串或编译的正则表达式,默认值返回页面上包含的所有<table>标签的内容 flavor要使用的解析引擎,lxml、bs4和html5lib ''' pd.read_html('data.html') ''' ''' pd.read_json('data.json') ''' xpath正则表达式 ''' pd.read_xml('data.xml', xpath='正则表达式') ''' sql:sql语句,con:连接sql数据的engine,chunksize:如果提供了一个整数值,会返回一个generator,每次输出的行数就是提供的值的大小 ''' pd.read_sql(sql, conn)
-
-
isna判断是否为Nan值
-
df = pd.DataFrame(['a', None, 'b', 'c', None]) # 判断是否为Nan值 pd.isna(df)
`
-
-
date_range
-
pd.date_range('2022-10-06', periods=6) # 返回datetime数据默认为天, freq='D|M|Y'
-
-
concat合并多个DataFrame数据
-
''' ignore_index重新排列索引, 默认为False axis默认为0,按行合并,axis=1为按列合并 join默认为outer, ''' pd.concat([a, b]) # 默认索引还是原有的 pd.concat([a, b], ignore_index=True) # 索引重新排列 pd.concat([a, b], axis=1) # 按列合并
-
-
join合并数据, 要求没有重叠的列
-
left = pd.DataFrame({'a': list('abcd'), 'b': list('efgh')}) right = pd.DataFrame({'c': list('ijkl'), 'd': list('mnpq')}) left.join(right, how='outer')
-
-
merge合并数据
-
''' on='key'按那一列合并,必须在要合并的对象中存在 left_on按左边的列或索引级别用作合并键 right_on按右边的列或索引级别用作合并键 left_index若为True,左侧的索引为连接 键 right_index和left_index同理 how默认内连接inner, 外连接为outer ''' dt1 = pd.DataFrame({'key': ['b', 'c'], 'dt1': range(2)}) dt2 = pd.DataFrame({'key': list('abd'), 'dt2': range(3)}) pd.merge(dt1, dt2, on='key') pd.merge(dt1, dt2, on='key', how='outer')
-