Python 数据处理相关内容记录

python

unicode 删除特定字符的方法:

  1. 使用translate命令,要注意的是:与string的translate命令不同,unicode的命令必须使用一个table作为map。table是一个dict,key是ord(你想删除的字符),value是你想替换的字符
  2. 使用replace命令,unicodeA.replace('string you want to replace', 'string you want to use')
import random 后,可以使用random.choice(list)随机选择list中的元素。

pandas

※    有一个问题是dataFrame 允许多列使用同一个index,导致赋值时会出现问题,需要注意。

    可以 使用df.apply()命令进行逐行的修改:  

df:  http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.apply.html

series: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html


※    统计某一列各种数据出现的频数使用df.groupby(column_name).size()即可得到各个unique值对应的频数。

    也可以使用 Series的 value_counts()函数进行统计。


※     在更新到14.1时出现问题numpy.ufunction has the wrong size 问题的原因有人说是安装了多个numpy 版本,但是我这里的原因是numpy 的版本是1.7.1没有更新到最新版本,pandas的版本太高。使用pandas13.1解决问题。


※    pandas如何删除多列数据(delete columns in dateframe)df.drop 问题及解答见:

http://stackoverflow.com/questions/13411544/delete-column-from-pandas-dataframe


pandas可以使用数据库得到的数据建立一个DataFrame(答案来自https://groups.google.com/forum/#!topic/pystatsmodels/a_ITO0ZzeYc)

q = engine.execute(session.query(T).__str__())
d = q.fetchall()
h = q.keys()
dtf = DF.from_records(d,columns=h)


但是把修改怎么批量写回去还不知道


如果一列数据可以分解成多列数据, 如 

s = 

1-2

2-3

可以分解成两列

1    2

2    3

使用函数

a = s.str.split('.')

a = 

[1, 2]

[2, 3]

b = a.str.get(-1)

b = 

2

3



numpy

两种组合数组的方式:

hstack: 1, 2

vstack:  1,

2.

sqlalchemy:

查找一列中最大值

from sqlalchemy import func 
session.query(func.max(Table.column)) 

sql连接数据库时要使用charset=utf8进行配置才可以正常使用中文

engine = create_engine('mysql://user:password@127.0.0.1:3306/icttest?charset=utf8')



scikit-learn :

File "C:\Python27\lib\site-packages\sklearn\neighbors\base.py", line 586, in fit
    return self._fit(X)
  File "C:\Python27\lib\site-packages\sklearn\neighbors\base.py", line 126, in _fit
    raise ValueError("data type not understood")
ValueError: data type not understood


错误原因:feature>samples, 有时,feature<sample也会出错,这是需要更大的sample。这可能与算法内部处理有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值