python入门使用

1.导入包

import pandas as pd

import numpy as np

 

2.读取表格

df=pd.read_csv('C:\\Users\\lingtian\\Desktop\\DataAnalyst.csv',encoding='gb2312')  // 除此之外还有read_excel和read_table,table可以读取txt。若是服务器相关的部署,则还会用到read_sql,直接访问数据库,但它必须配合mysql相关包。

链接可以写双\\ 可以写反/

 

读取sheet  #通过表名 In [17]: sheet = pd.read_excel('example.xls',sheet_name= 'Sheet2')

#通过表的位置 In [19]: sheet = pd.read_excel('example.xls',sheet_name= 1)

https://blog.****.net/brucewong0516/article/details/79096633

 

3.预览

df

python入门使用

4.预览N行表格情况

df.head(6) //查看前6行,括号里不加6,则默认5行

df.tail(3) //查看后6行

python入门使用

 

5.快速查看表格数据类型

df.info() // 这里列举出了数据集拥有的各类字段

python入门使用

 

6. 查看数据表的维度,也就是行数和列数

df.shape //6876行,17列

python入门使用

 

7.查看数据类型

df.dtypes #查看数据表各列格式

df['B'].dtype #查看单列格式

python入门使用

 

8.查看空值

df.isnull() #返回的结果是逻辑值,包含空值返回True,不包含则返回False。可以对整个数据表进行检查,也可以单独对某一列进行空值检查。

df['city'].isnull() #检查特定列空值

python入门使用

 

9.查看唯一值

#两种写法都对

python入门使用

10.去除重复项

 

df_duplicates=df.drop_duplicates(subset='positionId',keep='first')

df_duplicates.head()

 

# drop_duplicates函数通过subset参数选择以哪个列为去重基准。keep参数则是保留方式,first是保留第一个,删除后余重复值,last是删除前面,保留最后一个。duplicated函数功能类似,但它返回的是布尔值。

python入门使用

11.表中类型转换

 

df.return_tp.astype('str')

python入门使用

 

12.分列

 

df_split_1=pd.merge(df, pd.DataFrame(df['return_tp'].str.split(',',expand=True)), how='left', left_index=True, right_index=True)

python入门使用

将分列后的内容自动转变匹配到行中

df_split_2=df.drop('return_tp', axis=1).join(df['return_tp'].str.split(',', expand=True).stack().reset_index(level=1, drop=True).rename('return_tp'))

 

多个分隔符分列时,加[ ] 中括号

df_split_2=df.drop('支付返回信息', axis=1).join(df['支付返回信息'].str.split('[|||]', expand=True).stack().reset_index(level=1, drop=True).rename('支付返回信息'))

 

13.输出表格

df_inner.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc')

pandas分隔字符 https://blog.****.net/qq_22238533/article/details/76187597

 

14.地址分号有问题

df=pd.read_csv('0725.csv',quoting = 3)

解释quoting https://blog.****.net/u012803639/article/details/64128295

 

15.按筛选条件去重计数

 

df_choose=df.loc[(df['EM per CC'] == 3) & (df['AD per CC'] == 1), ['全部']]

df_1=df_choose.drop_duplicates() #去重,去重还可以用unique

df_1.count() #计数

 

python入门使用

 

16.pandas中进行连接用:

pd.merge(df1, df2, on='key')

pd.merge(left, right, on = ['key1', 'key2']) #多条件合并

等同于

SELECT *

FROM df1

INNER JOIN df2

  ON df1.key = df2.key;

SELECT *

FROM df1,df2 where df1.key=df2.key

 

#coding=utf-8

from pandas import Series,DataFrame,merge

import numpy as np

data=DataFrame([{"id":0,"name":'lxh',"age":20,"cp":'lm'},{"id":1,"name":'xiao',"age":40,"cp":'ly'},{"id":2,"name":'hua',"age":4,"cp":'yry'},{"id":3,"name":'be',"age":70,"cp":'old'}])

data1=DataFrame([{"id":100,"name":'lxh','cs':10},{"id":101,"name":'xiao','cs':40},{"id":102,"name":'hua2','cs':50}])

data2=DataFrame([{"id":0,"name":'lxh','cs':10},{"id":101,"name":'xiao','cs':40},{"id":102,"name":'hua2','cs':50}])

print "单个列名做为内链接的连接键\r\n",merge(data,data1,on="name",suffixes=('_a','_b'))

print "多列名做为内链接的连接键\r\n",merge(data,data2,on=("name","id"))

print '不指定on则以两个DataFrame的列名交集做为连接键\r\n',merge(data,data2) #这里使用了id与name

#使用右边的DataFrame的行索引做为连接键

##设置行索引名称

indexed_data1=data1.set_index("name")

print "使用右边的DataFrame的行索引做为连接键\r\n",merge(data,indexed_data1,left_on='name',right_index=True)

print '左外连接\r\n',merge(data,data1,on="name",how="left",suffixes=('_a','_b'))

print '左外连接1\r\n',merge(data1,data,on="name",how="left")

print '右外连接\r\n',merge(data,data1,on="name",how="right")

data3=DataFrame([{"mid":0,"mname":'lxh','cs':10},{"mid":101,"mname":'xiao','cs':40},{"mid":102,"mname":'hua2','cs':50}])

#当左右两个DataFrame的列名不同,当又想做为连接键时可以使用left_on与right_on来指定连接键

print "使用left_on与right_on来指定列名字不同的连接键\r\n",merge(data,data3,left_on=["name","id"],right_on=["mname","mid"])

 

17.拼接字段 https://blog.****.net/u012063773/article/details/73863212

 

18.读取文本出问题了,gb2312读取不了时,可以换取编码范围更大的gb18030,如果还不行,可以直接忽略非法字符

 

df=pd.read_csv('C:/Users/lingtian/Desktop/Data Cal - Sub2.csv',encoding='gb18030')

  df=pd.read_csv('C:/Users/lingtian/Desktop/Data Cal - Sub2.csv',encoding='gb18030',errors='ignore')

 

19.字段拼接

 

#map(str)转换字符串

df["newColumn"] = df["Card Number"].map(str) + df["RGID"].map(str)

df.head()

 

#先转换成字符串类型的

df['Card Number']=df['Card Number'].astype('string_')

df['RGID']=df['RGID'].astype('string_')

#拼接两个字段

df['new']=df['Card Number']+df['RGID']

#输出

df.to_csv('C:/Users/lingtian/Desktop/0-0.csv')