一、创建对象
1、导入pandas库和numpy库
import numpy as np
import pandas as pd
2、导入CSV或者xlsx文件
df = pd.DataFrame(pd.read_csv(‘name.csv’,header=1))
df = pd.DataFrame(pd.read_excel(‘name.xlsx’))
1.CSV文件
读操作:
import pandas as pd
pd.read_csv(path="",sep=",",header=None,index_col="",skiprows=[0,2,4])
path表示路径、sep表示分隔符、header表示是否显示头部信息、index_col表示建立索引(其中:index_col='message '将message列定义为索引,index_col=[“a”,“b”] 建立多层索引)、skiprows=[0,2,4] 表示跳过0,2,4行数据。
写入操作:
df.to_csv()
2.xlsx文件
读操作:
pd.read_excel('examples/ex1.xlsx', 'Sheet1')
写入操作:
df.to_excel("excel_name.xlslx","sheet_name")
3、创建对象
1.创建Series
Series是一维数据结构每一个元素都带有一个索引,与一维数组的含义相似,其中索引可以为数字或字符串。
import pandas as pd
# 方法一:创建series(通过数据创建)
pd.Series(["a","b","c","d"])
# 方法二:创建series(通过字典创建)
dict = {"a":"python","b":"java","c":"php"}
pd.Series(dict)
# 方法三:创建series(通过自定义index创建)
pd.Series(["java","php","python","jsp"],index=["a","b","c","d"])
索引可指定,但数量必须相对应
基本属性、操作、方法
ser_data = pd.Series(["java","php","python","jsp"],index=["a","b","c","d"])
# 获取series的索引
ser_data.index
# 获取series的值
ser_data.values
# 通过索引取值
ser_data["a"]
ser_data[["a","b"]]
# 判断是否有缺失值
ser_data.isnull()
ser_data.notnull()
Series也有where方法,但结果不同
2.创建DataFrame
DataFrame是一种二维数据结构,数据以表格形式(与excel类似)存储,有对应的行和列。
可以自定义索引名称和列名,同样也可以使用字典类型创建
import pandas as pd
import numpy as np
t=pd.DataFrame(np.arange(12).reshape(3,4))
t1=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("wxyz"))
d1={"name":["xiaoming","xiaogang"],"age":[20,32],"tel":[10086,10010]}
d2=[{"name":"xiaohong","age":32,"tel":10010},{"name":"xiaogang","age":20},{"name":"xiaoming","tel":10086}]
from pymongo import MongoClient
import pandas as pd
client=MongoClient()
collection=client["douban"]["cvl"]
data=list(collection.find())
for i in data:
temp={}
temp["info"]=i["info"]
temp["rating_count"]=i["rating"]["count"]
temp["rating_value"]=i["rating"]["value"]
temp["title"]=i["title"]
temp["country"]=i["country"]
temp["directors"]=i["directors"]
temp["actors"]=i["actors"]
data_list.append(temp)
#得到比较干净的数据
基本属性、操作、方法
t2.index
t2.values
# 显示前五行/后五行
df.head()/df.tail()
# 获取某列的值名
df.columns
t2.shape
t2.dtypes
t2.ndim
# 获取某列的值
df["a"]
df.a
df1[["a","b"]] # 选取多列
# 根据轴标签索引
df.loc["one":"three"]
# 根据整数索引
df.iloc[0:1]
# 获取某几行几列
df1.iloc[[0,2],[1,2]]
维度
DataFrame整体情况查询
#显示头几行
print(t2.head(2))
print("*"*10)
print(t2.tail(2))
print("*"*10)
#显示t2的概览
print(t2.info())
print("*"*10)
#快速统计数字类型列的信息
print(t2.describe())
#dDAtaFrame中排序的方法 (某一列)
df.sort_values(by="..",#ascending=False)
print(df#.head(5)) #升序排序 #降序排序
#取前五行
DataFrame的取行或取列
#取前二十行
print(df[:20])
print(df[:20]["R.."]) #具体某一列
#pandas取行或取列的注意点
#方括号写数字,表示取行,对行进行操作
#写字符串,表示的是取索引列,对列进行操作
print(type(df["R.."])) #类型为Series
二、查看数据
1、维度查看:
df.shape
2、数据表基本信息(维度、列名称、数据格式、所占空间等):
df.info()
3、每一列数据的格式:
df.dtypes
4、某一列格式:
df[‘B’].dtype
5、空值:
df.isnull()
6、查看某一列空值:
df.isnull()
7、查看某一列的唯一值:
df[‘B’].unique()
8、查看数据表的值:
df.values
9、查看列名称:
df.columns
10、查看前10行数据、后10行数据:
df.head() #默认前10行数据
df.tail() #默认后10 行数据
11、显示索引、列和底层的numpy数据:
df.inndex
df.columns
df.values
12、 describe()函数对于数据的快速统计汇总:
df.describe()
13、对数据的转置:
df.T
14、按轴进行排序:
df.sort_index(axis=1,ascending=False)
15、按值进行排序:
df.sort(columns=‘B’)
三、读取外部数据
import pandas as pd
#pandas读取csv中的文件
df=pd.read_csv("...")
print(df)
#读取mysql中的数据
pd.resd_sql(sql_sentence.connection)
#读取mongdb中的数据
from pymongo import MongoClient
import pandas as pd
client=MongoClient()
collection=client["douban"]["tvl"]
data=list(collection.find())
t1=data[0]
t1=pd.Series(t1)
print(t1)
四、Pandas之loc
- df.loc通过标签索引行数据
- df.iloc通过位置获取行数据
t3=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("wxyz"))
t3.loc["a","z"]
五、pandas之布尔索引
#想要得到所有的。。。大于800的且小于1000的
df[df[“C…”]>800]&df[df[“C…”]<1000 ]
#且:&
#或 :|
缺失数据的处理
数据缺失:
1.空,None 在pandas是NaN(和np.nan一样)
2.0 (并不是所有0都是数据缺失,有的有意义)
处理方法:
1.删除
这篇博客详细介绍了如何使用Pandas进行数据操作,包括创建对象、查看数据、读取CSV和xlsx文件,以及利用loc和布尔索引进行数据筛选。重点讲解了Series和DataFrame的创建,数据的查看方法如shape、info、dtypes,以及数据的读写操作。此外,还讨论了如何处理缺失数据。
4661

被折叠的 条评论
为什么被折叠?



