2018/11/16
- numpy会限制字符串长度
ctpn = np.array(ctpn, dtype=str) # np会截取长度
- 比如说,line_split[1] = line[1], line[1]长度超过32的,都会截断
- stackoverflow,有人这样说:
NumPy will use the “U” dtype, which is indeed UTF-32 (4 bytes). This is also the default type when creating an array from strings on Python 3.
stackoverflow,有人提出这样的解决方案
于是修改代码如下:
ctpn = np.array(ctpn).astype('S140')
-
然后:
'ascii' codec can't encode characters in position 1-2: ordinal not in range(128)
但是在文件开头,是有注明:# -- coding: utf-8 --
在python的Lib\site-packages文件夹下新建一个sitecustomize. py,内容为:
import sys
reload(sys)
sys.setdefaultencoding(‘utf8’) -
随后提示:
name 'reload' is not defined
py3不提倡使用(其实一直不提倡)sys.setdefaultencoding(“utf-8”) -
接下来怎么办?
这是类似的问题,但没人解答
试一下“万能的”object:
dtype=object
唉,就这样解决了问题。。。有些不甘心
2018/11/24
- The kernel appears to have died. It will restart automatically.
事情发生于我更新了一些包:pandas、numpy、scikit-learn、tensorflow
命令行提示,发现:
以下尝试(基础环境中),无果
conda upgrade notebook
conda upgrade jupyter
以下尝试(发生问题的python3 kernal)
pip install --upgrade notebook
pip install --upgrade jupyter
done.
2018/11/25
补充几个conda 语法:
- 导出软件包信息到文件:
codna list --export >> 重定向 - 从文件创建环境:
conda create -n name --file filename - 以yaml的形式打印指定环境的信息:
canda env export -n envname
2018/12/10
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
解决办法(python3)
sudo apt-get install python3-apt --reinstall
cd /usr/lib/python3/dist-packages
cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so
2018/12/12
pandas 中,将某列类型转为字符串型
- 假设有以下数据:
由于pandas默认自动类型检测,对于这些“混合类型”的,定义为object。数据量大时,建议关闭自动类型检测,会耗费很多内存
我想做的事情:
b= b[(b.col_1 == 2) | (b.col_1 == 2.0)]
也就是期望得到这样额达结果集:
2,3
2.0,N
所以。以下不是我想要的:
尝试的失败的方法:
.apply('str') # pandas.core.strings.StringMethods object
.str # pandas.core.strings.StringMethods object
.astype('str') # not work,also object
.astype('|S80') # not work,also object
pd.read_csv("b.csv", dtype = {'col_1' : str}) # not work,also object
.applymap(str).loc[:,'col_1'] # not work,also object
部分失败截图:
这是个乌龙,倒腾这么久,是我自己一直b= b[(b.col_1 == ‘2’) | (b.col_1 == ‘2.0’)]
忘记加‘’