使用anaconda
python 导入csv文件
from pandas import read_csv;
df =read_csv('E://1.csv',encoding ='UTF-8')
encoding 指定编码utf-8
python 导入文本文件
from pandas import read_table;
df =read_table('E://2.txt',encoding ='UTF-8',names=['age','name'],sep=',')
加入列明
导入 excel
from pandas import read_excel;
df = read_excel('E://3.xls')
python 导出文本文件
from pandas import DataFrame;
df =DataFrame({
'age':[21,22,23],
'name':['ken','john','zhangsa']
});
df.to_csv('E://df.csv');
df.to_csv('E://df.csv',index=Fales); 导出时候不带序号
处理重复值 == 数据清洗
drop_duplicates()
from pandas import read_csv;
df =read_csv('E://shuju/data.csv',encoding='utf-8')
netOF = df.drop_duplicates();
缺失值的处理
处理方式
数据补齐 删除对应缺失行
去除数据结构中值为空的数据
使用 dropna()
from pandas import read_csv;
df =read_csv('E://shuju/1.csv',encoding='utf-8')
newdf= df.dropna();
空格值数据的处理
strip()使用
from pandas import read_csv;
df =read_csv('E://shuju/data.csv',encoding='utf-8')
nameName = df['name'].str.strip();
df['name'] =nameName
字段的抽取
使用slice(start,stop)
from pandas import read_csv;
df =read_csv('E://shuju/data.csv',encoding='utf-8')
df['tel'] =df['tel'].astype(str); astype 转换成字符串
bands =df['tel'].str.slice(0,3)
字段拆分split(sep,n,expand=false)
sep 用于分割的字符串
n 分割为多少列
expand 是否展开为数据库
expand 为true 返回DataFrame false 返回series
from pandas import read_csv;
df =read_csv('E://shuju/data.csv',encoding='utf-8');
newDF =df['name'].str.split(' ',1,True);
newDF.columns=['band','name'];
记录抽取
对指根据一定的条件对数据进行抽取
dataframe[condition]
condition 过滤的条件 返回值是dataframe
记录抽取 常用的条件类型
>< >=<= 如 df[df.comments>1000];
范围运算
between(left,right)
df[df.commebts.between(1000,1000)]
空值匹配
pandas.isnull(column)
df[pandas.isnull(df.title)]
字符串匹配
str.contains(patten,na =False)
df[df.title.str.contains('台电',na=Fale)]
逻辑运算
与& 或| 取反not
import pandas;
from pandas imoprt read_csv
df[df.comments>10000];
随机抽取函数
numpy.random.randint(start,end,number)
start 开始 end 结束 number 从哪里开始
import numpy;
from pandas import read_csv;
df =read_csv('E://shuju/data.csv',encoding='utf-8');
r= numpy.random.randint(0,10,3);
df.loc[r,:];