暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python学习笔记:第一天

龙小马的数字化之路 2021-08-03
355

DataFrame


DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。

DataFrame可以通过类似字典的方式或者.columnname的方式将列获取为一个Series。行也可以通过位置或名称的方式进行获取。

为不存在的列赋值会创建新列。


创建DataFrame


将一个{key:list[]}转换成DataFramekey为列名

DataFrame(data,columns = [‘col1’,‘col0’])

data形式为{key:list[]}的字典


将一个{key:list[]}转换成DataFramekey为列名

DataFrame(data,columns = [‘col1’,‘col0’])data形式为{key:list[]}的字典;columns参数-指定列的顺序

DataFrame(data,columns = [‘col1’,‘col0’,‘col2’])如果columns中传入的列名找不到,不会报错,而是产生一列 NA 值

读取文件


读取csv文件

dfcsv = pd.DataFrame(pd.read_csv("name"))


读取excel文件

dfexcel = pd.DataFrame(pd.read_excel("name"))

dfexcel = pd.read_excel(r"C:\Users\weihoo\Desktop\orders.xlsx")


需要注意的是,“\”在python里代表转义字符,它后面的会被进行转译,所以这里需要添加个“r”开头,表示它后面的字符所写即所得。


读取mysql数据库文件:需要用到sqlalchemy 和pymysql包

import pandas as pd

from sqlalchemy import create_engine

engine=create_engine("mysql+pymysql://root:123456@localhost:3306/classicmodels")

sql = "select * from customers"

dfsql = pd.read_sql(sql,engine)


root>>服务器名称

123456>>数据库服务器密码

localhost:3306>>数据库地址

classicmodels>>数据库名称


输出行数、列数


df.shape


dfexcel.shape

(326, 7)


查看数据表基本信息



dfexcel.info()


<class 'pandas.core.frame.DataFrame'>

RangeIndex: 326 entries, 0 to 325

Data columns (total 7 columns):

订单编码      326 non-null int64

订单日期      326 non-null datetime64[ns]

要求发货日期    326 non-null datetime64[ns]

实际发货日期    312 non-null datetime64[ns]

订单状态      326 non-null object

备注        80 non-null object

顾客编码      326 non-null int64

dtypes: datetime64[ns](3), int64(2), object(2)

memory usage: 17.9+ KB


获取表、列数据


frame

frame[‘col1’]

frame.col1


df

df.id

df.city


删除数据


del frame[‘col1’]

del frame.col1


del df.city


查看空值


df.isnull()

df["col1"].isnull()


查看唯一值



df["col1"].unique()


查看表列名


df.columns


查看前N行、后N行数据


df.head(N)    #默认是10行

df.tail(N)    #默认是10行


2.pandas.date_range()


语法:

pandas.date_range(start=None, end=None, periods=None, freq=‘D’,tz=None, normalize=False, name=None, closed=None)


该函数主要用于生成一个固定频率的时间索引,在调用构造方法时,必须指定start、end、periods中的两个参数值,否则报错。


主要参数说明:

start:开始日期,例如:‘20180101’,‘01/01/2018’

end:结束日期

periods:固定时期,取值为整数或None;

freq:日期偏移量,取值为string或DateOffset,默认为’D’,还有’M’,‘Q’,‘Y’

normalize:若参数为True表示将start、end参数值规范化到午夜时间20180101 00:00:00

name:生成时间索引对象的名称,取值为string或None

closed:可以理解成在closed=None情况下返回的结果中,若closed=‘left’表示在返回的结果基础上,再取左开右闭的结果,若closed='right’表示在返回的结果基础上,再取做闭右开的结果


示例:date_range = pd.date_range('20180101', periods=10, freq='D')

输出:DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08','2018-01-09', '2018-01-10'],dtype='datetime64[ns]', freq='D')



参数说明
D
B工作日
MS月第一天
BMS月第一个工作日
M月最后一天
BM月最后一个工作日
Q季度末
Y年末
H小时
min分钟
S
W-MON、W-TUE每周,并指定每周从周几开始
文章转载自龙小马的数字化之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论