Pandas常用命令
一.数据导入和导出
(一)读取csv文件
1.本地读取
import pandas as pddf = pd.read_csv('tips.csv') #根据自己数据文件保存的路径填写(p.s. python填写路径时,要么使用/,要么使用\\)
2.网络读取
import pandas as pddata_url = "https://raw.githubusercontent.com/mwaskom/seabo-data/master/tips.csv" #填写url读取df = pd.read_csv(data_url)
3.读取数据库
# 读取mysql 数据con = pymysql.connect(host='192.168.159.129',user='root',password="mysql",database='mysql',port=3306,charset='utf8')a = pd.read_sql_query('select * from user;',con=con)print(type(a))
二.提取和筛选需要的数据
print(df.head()) #打印数据前五行print(df.tail()) #打印数据后5行print(df.columns) #打印列名print(df.index) #打印行名print(df.ix[10:20, 0:3]) #打印10~20行前三列数据print(df.iloc[[1,3,5],[2,4]])#提取不连续行和列的数据,这个例子提取的是第1,3,5行,第2,4列的数据print(df.iat[3,2])#专门提取某一个数据,这个例子提取的是第三行,第二列数据(默认从0开始算)print(df.drop(df.columns[1, 2], axis = 1)) #舍弃数据前两列print(df.drop(df.columns[[1, 2]], axis = 0)) #舍弃数据前两行print(df.shape) #打印维度print(df.iloc[3]) #选取第3行print(df.iloc[2:4]) #选取第2到第3行print(df.iloc[0,1]) #选取第0行1列的元素print(df.dtypes)# 查看数据类型print(df[df.tip > 8 ]) #选取tip列大于8的#数据筛选同样可以用”或“和”且“作为筛选条件,比如df[(df.tip>7)|(df.total_bill>50)] #筛选出小费大于$7或总账单大于$50的数据df[(df.tip>7)&(df.total_bill>50)] #筛选出小费大于$7且总账单大于$50的数据df[['day','time']][(df.tip>7)|(df.total_bill>50)] #假如加入了筛选条件后,我们只关心day和timeprint(df.describe()) #描述性统计
三.数据处理
1.数据转置
print(df.T)
2.数据排序
print(df.sort_values(by='size',ascending=False)) # 根据 size 列进行排序,ascending=False 降序。默认升序
四.缺失值处理
1.填充缺失值
df['tip'].fillna("hello") # 指定数据代替缺失值
df['tip'].fillna(method='pad') #用前一个数据代替缺失值
df['tip'].fillna(method='bfill') #用后一个数据代替缺失值
2.删除缺失值
df['tip'].dropna(axis=0) #删除缺失行
df['tip'].dropna(axis=1) #删除缺失列
五.数据分组
group = df.groupby('day') #按day这一列进行分组
print(group.first())#打印每一组的第一行数据
print(group.last())#打印每一组的最后一行数据
六.保持数据
1.写入数据库
# 导入必要模块import pandas as pdfrom sqlalchemy import create_engine# 初始化数据库连接,使用pymysql模块# MySQL的用户:root, 密码:mysql, 端口:3306,数据库:mydb# 读取csv 数据df = pd.read_csv('tips.csv')engine = create_engine('mysql+pymysql://root:mysql@192.168.159.129:3306/my_data?charset=utf8')df.to_sql('tips', con=engine, index=True,if_exists='fail') # 将df 数据读取写入到mysql 数据库,表名为 tips,index=True 表示写入行索引if_exists 存在“fail”、“replace”、“append”,则默认为“fail”如果表已经存在,如何进行操作。*fail:引发ValueError。*replace:在插入新值之前删除表。*append:在现有表中插入新值。
作者:地球守卫者
来源链接:https://www.cnblogs.com/huangguifeng/p/10213496.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。