0%

分割读取文件的日期、时间

1. 读取csv数据文件

import pandas as pd
data=pd.read_csv("data_in_need/kaggle_bike_competition_train.csv",header=0,error_bad_lines=False)
  • “data_in_need/kaggle_bike_competition_train.csv”这种路径是在Linux里面的。

2. 查看读取的数据

data.head()

3. 将时间设置为DatetimeIndex格式

temp=pd.DatetimeIndex(data["datetime"])

4. 新建两个字段,分割

data["date"]=temp.date
data["date"].head()

data"date"内容

data["time"]=temp.time
data["time"].head()

data"time"内容

5. 处理结果(最后新增两列)

data.head()

尾部新增分离的两列

备注

1. 连接数据库(mysql)

#coding:utf8
import MySQLdb
conn=MySQLdb.connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='123456',
    db='test')
cur = conn.cursor()

2. 创建数据库

cur.execute("create table student(id int,name varchar(20),class varchar(30),age varchar(10))")  #此句没有立马执行操作。

3. 插入数据

cur.execute("insert into student values('2','Tom','3 year 2 class','9')")

4. 更新数据

cur.execute("update student set class='3 year 1 class' where name='7'")

5. 删除数据

cur.execute("delete from student where age='9'")

6.其余步骤

cur.close()
conn.commit() #执行查询语句
conn.close()  #关闭数据库链接

1,(2/3/4/5),6为完整步骤。MySQL为关系型数据库。

1. jupyter

  • 查看文件内容

    !cat data4.csv #用于Linux版
    !type data4.csv #用于windows版

2. pandas

  • pandas读取规整数据(txt格式),可以使用read_table

  • 读取CSV文件,跳过某些行

    pd.read_csv(‘data4.csv’,skiprows=[0,2,3]) #跳过csv0,2,3这几行。

  • 判断数据是否为空

    pd.isnull()

  • 分块读取(存疑)

  • 存数据时空值存NULL

    data.to_csv(sys.stdout,na_rep=’NULL’)

  • 产生日期数据

    dates=pd.date_range(‘2/17/2018’,periods=7)

  • 手动读取数据(一次性全部读取)

    import csv
    f=open(‘data7.csv’)
    reader=csv.reader(f)
    for line in reader:

      print(line)
    
  • 读取JSON类型数据

    obj=
    “””
    {“姓名”:”张三”,
    “住址”:”天朝”,
    “宠物”:null}
    “””
    import json
    result=json.loads(obj)
    print(json.dumps(result,encoding=”UTF-8”,ensure_ascii=False)) #显示出内容

  • 二进制格式数据

    frame=pd.read_csv(‘data1.csv’) #读取csv
    frame=pd.to_pickle(‘frame_pickle’) #写为二进制数据
    pd.read_pickle(‘frame_pickle’) #读取二进制数据

Python yield关键字,以及zip(内置方法)

提到yieid就不得不提到生成器,我看的视频里面有一段是将18个市区发帖量以地区,发帖数,绘制图表类型,运用Highcharts进行绘制图表(不用matplotlib绘制)。

area_index=["西城","燕郊","密云","石景山","海淀","朝阳"]
post_time=[3376,541,386,1958,11768,19224]
def data_gen(types):
    length=0
    if length <= len(area_index):
        for area,times in zip(area_index,post_time):
            data={
                'name':area,
                'data':[times],
                'type':types
            }
            yield data
            length+=1

for i in data_gen("colums"):
    print(i)

执行结果

1. yield

yield类似return,但是会记住代码执行的位置,下一次再次调用时,从上一次执行的位置开始运行。

2. zip

zip会将后面的两个列表,从其中各取出一个组成一个元组列表。

zip(area_index,post_time)

内部为

[("西城",3376),("燕郊",541),("密云",386)]

注:本文是我在看视频教程时提出的疑问。 参考:Python yield 使用浅析