182017
 

话说,css就是那个层叠样式表。这个咋跟动画扯上关系了。其实,css早就可以实现动画的效果。

这里有demo可以喵喵:
https://tympanus.net/Development/HoverEffectIdeas/index.html

https://tympanus.net/Development/CreativeLinkEffects/

虽然很美好,可是css的兼容性问题从来就没离开过。这里就不管这些了。常见的动画效果改变有颜色,位置,scale,透明度,宽,高等等。下边就列出一些其api的,不会说其用法。

Continue reading »

122017
 

http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.

AS3常用的http请求方式也是post和get。当对URLRequest对象设置method方式为get或post以外的方式,就会报错。
ArgumentError: Error #2008: 参数 method 必须是某个可接受的值。

Continue reading »

042017
 

python怎么求交集呢。如果是DataFrame某字段求交集,可以用isin,也可以用merge。isin只会保留一边的交集数据,merge则两边都会保留。当然merge不仅仅是取交集。

如果是对Series求交集intersect1d。这种方式的数据筛选权当做取交集吧。

# coding:UTF-8

import pandas as pd
import numpy as np

df1 = pd.DataFrame({
        "id":range(1,5),
        "age":(18, 24, 32, 20),
        "address":('shanghai', "bejing", "shanghai", "guangzhou")
});

df2 = pd.DataFrame({
        "id":range(10,14),
        "age":(20, 16, 25, 24),
        "address":('shanghai', "bejing", "shanghai", "guangzhou")
});


df3 = pd.merge(df1,df2, how='inner',on="age")

df4 = df1[df1["age"].isin(df2["age"])]

#下边是处理Series
s1 = df1["age"]

s2 = df2["age"]

s3 = np.intersect1d(s1, s2)

042017
 

python插入数据到mysql的工具很多。每个工具写法不一样效率也不一样。就拿sqlalchemy,MySQLdb,sqlite3来说。sqlalchemy分ORM方式插入数据和非ORM方式插入。非ORM和ORM都还有细微的方式。可以参考:
http://docs.sqlalchemy.org/en/latest/faq/performance.html#i-m-inserting-400-000-rows-with-the-orm-and-it-s-really-slow

自己做了下尝试。插入3.8万条数据到mysql。用MySQLdb的一种写法需要1.8s左右,用sqlite3用时约2s左右,sqlalchemy的非ORM方式单纯insert需要2.8s左右,带去重则需要8s左右。说到去重,用MySQLdb的去重效率最高。各个框架工具,最开始暴露出来的称ORM,具体内部实现是怎样,需要考量。单纯的sql语句。insert into XXX values (xxx),(xxx),(xxx)。比insert into XXX values (xxx), insert into XXX values (xxx) …… 这样效率高很多。

按效率高低,贴出部分代码。
Continue reading »

十二 192016
 

避免往数据库中插入重复数据,可以使用INSERT IGNORE 或 REPLACE INTO。
INSERT IGNORE 会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
REPLACE INTO 如果存在primary 或 unique相同的记录,则先删除掉。再插入新记录。

在SQLAlchemy中,用ORM方式,方便大量插入数据。操作简单。如果也想避免往数据库中插入数据,其实操作也一样的。

engine.execute(User.__table__.insert().prefix_with(‘IGNORE’), {{‘id’: 1, ‘name’: ’1′},{‘id’: 1, ‘name’: ’1′},…,{‘id’: 2, ‘name’: ’2′}})

参考:https://www.keakon.net/2012/12/03/SQLAlchemy%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C

参考:http://itindex.net/detail/40939-sqlalchemy-%E7%BB%8F%E9%AA%8C

参考:http://www.cnblogs.com/koka24/p/5327280.html

参考:http://www.jianshu.com/p/e6bba189fcbd

参考:http://www.jianshu.com/p/28d3f5079f50

MYSQL批量插入数据效率问题:http://blog.csdn.net/frinder/article/details/38830723

SQLAlchemy批量插入数据效率问题:http://docs.sqlalchemy.org/en/latest/faq/performance.html#i-m-inserting-400-000-rows-with-the-orm-and-it-s-really-slow

十一 042016
 

在pandans中,时间的计算以及转换,有它自己独有一套API.对时间的数据类型也很讲究。比如打印出来都一样,可能它是字符串类型,也可能是pandas.tslib.Timestamp类型。字符串中,你没法去比较时间的大小,也没法做时间的计算。两个时间差多少小时,多少分这些。往往,一般都是需要先转化。将字符串转换成Timestamp类型。再做计算或比较。
Continue reading »

十一 042016
 

我们在做merge的时候,如果两个DataFrame中存在相同的列名,merge会自动给相同的列名加上后缀。然后,你对需要的数据进行切割。如果所需要的数据中列名还带着个后缀,是很不舒服的。这个时候,你会想重命名列名。这个是一种场景。在其他场景,你也许也想重命名列名的。总之,就是想重命名列名。

通过DataFrame的rename方法,可以实现列名的改变。也可以使用columns属性来操作(直接赋值的方式)。其实,当对个别列重命名,当然是rename最好了。
Continue reading »

272016
 

对DataFrame的各种处理太多太多。这里,只记录一点点,以便熟悉和记忆。利用where特性,去除特殊的行或赋值。利用lambda表达式和函数,更详细的处理行的情况。这些不仅仅对DataFrame操作,对其他对象该有该种行为的一样有效果。下边列出代码和输出。
Continue reading »

网站地图