文章目录
Pandas:Python Data Analysis Library
为了解决数据分析任务创建
数据结果:
***Series:***一维数组:与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
***Time-Series:***以时间为索引的Series
***DataFrame:***二维的表格型数据结构,可以理解为Series的容器
***Panel:***三维数组,可以理解为DataFrame的容器
Pandas-read_csv()
函数参数详解
skip_blank_lines : boolean, default True
如果为True,则跳过空行;否则记为NaN。
skiprows : list-like or integer, default None
需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
获取标签,索引
csv_file = pandas.read_csv('.csv')
print(csv_file.index)#获取索引
print(csv_file.columns)#获取标签
read_csv()遇到的问题
DtypeWarning: Columns (1,5,7,16,…) have mixed types. Specify dtype option on import or set low_memory=False.
两个解决方案:
参考:mixed types问题
# 1.设置read_csv的dtype参数,指定字段的数据类型
pd.read_csv(sio, dtype={
"user_id": int, "username": object})
# 2.设置read_csv的low_memory参数为False
pd.read_csv(sio, low_memory=False})
low_memory:解决办法的原因: low_memory=False 参数设置后,pandas会一次性读取csv中的所有数据,然后对字段的数据类型进行唯一的一次猜测。这样就不会导致同一字段的Mixed types问题了。
但是这种方式真的非常不好,一旦csv文件过大,就会内存溢出;推荐第一种解决方案
Pandas-to_csv()
保存
iterrows()/行,iteritems()/列
返回一个generator对象,是可迭代对象
Pandas-loc
Pandas库中有iloc和loc以及ix可以用来索引数据.
**iloc:**针对数字索引
**loc:**字符索引
**ix:**混合索引
中文字符,特殊字符的去除
读入的数据位UTF-8格式,剔除其中的中文字符,特殊字符
下面放入字符剔除及中英文符号转换的函数,便利自己的数组调用即可
#将中文标点符号转换为英文标点符号
#https://blog.youkuaiyun.com/nanbei2463776506/article/details/82967140
def C_trans_to_E(string):
E_pun = u',.!?[]()<>"\''
C_pun = u',。!?【】()《》“‘'
#ord返回ASCII码对应的int
#zip将合并为列表,元素为元祖,元祖为对应位置所有元素依次的集合,如这种形式[(',',',')...]
#s生成对应字典
table= {
ord(f):ord(t) for f,t in zip(C_pun,E_pun)}
#将字符传对应转换
return string.translate(table)
#移除汉子和特殊字符