概述
python中使用pandas数据库
利用pandas进行数据分析,以及试用一下jupyter notebook
import pandas as pd
from pandas import DataFrame, Series
pandas中有两种基本数据类型,Series 和 DataFrame,Series就是带有index的序列,而DataFrame是可以定义index和column的标签的二维数据结构,有点类似于excel表格的样式。而excel表格也可以存成csv格式,然后用pandas的DataFrame读进来。
Series数据结构
先看Series数据结构:
s = Series(['jin','mu','shui','huo','tu'])
s
0 jin
1 mu
2 shui
3 huo
4 tu
dtype: object
Series有values和index两个属性,分别查看序列的值和序号,序号也是可以自定义的。
s.values
array(['jin', 'mu', 'shui', 'huo', 'tu'], dtype=object)
s.index
RangeIndex(start=0, stop=5, step=1)
s = Series(['jin','mu','shui','huo','tu'],index = ['autumn','spring','winter','summer','long summer'])
s
autumn jin
spring mu
winter shui
summer huo
long summer tu
dtype: object
s = Series(s,index = ['autumn','spring','winter','summer','long summer','others'])
s
autumn jin
spring mu
winter shui
summer huo
long summer tu
others NaN
dtype: object
上面可以看出,添加一个index会增加一个value为NaN的项目。
s.isnull()
autumn False
spring False
winter False
summer False
long summer False
others True
dtype: bool
pd.isnull(s)
autumn False
spring False
winter False
summer False
long summer False
others True
dtype: bool
pd.notnull(s)
autumn True
spring True
winter True
summer True
long summer True
others False
dtype: bool
s['winter']
'shui'
s = Series({'winter':1,'summer':2,'spring':3})
s
spring 3
summer 2
winter 1
dtype: int64
用python的字典dict也能生成Series。然后Series可以相加,也可以定点赋值。
b = Series([67,78,89],index=['winter','summer','spring'])
b
winter 67
summer 78
spring 89
dtype: int64
s + b
spring 92
summer 80
winter 68
dtype: int64
s['spring'] = 89
s
spring 89
summer 2
winter 1
dtype: int64
s[s>1]
spring 89
summer 2
dtype: int64
总结,Series可以用list或者字典生成,其中包含index和对应的values,生成的时候前面是value后面的是index,可以不指定index,也可以自定义。可以对Series数据结构进行根据条件取出部分元素的操作,也可以不同的Series之间加减
DataFrame数据结构
DataFrame是二维的数据结构,存成矩阵,行叫做index,和Series一直,列叫做column。生成一个这样的数据体可以用一下的方法,就是字典的方法,其中字典的key对应于column,联想excel表格中的项目,是对应的。dict中的value用一个list表示,这个list就是DataFrame的key属性这一列的values。
df = DataFrame({'jin':[0.1,0.8,0.4],'mu':[0.5,0.7,0.6]})
df
jin
mu
0
0.1
1
0.8
2
0.4
df = DataFrame({'jin':[0.1,0.8,0.4],'mu':[0.5,0.7,0.6]},index=['person1','person2','person3'])
df
jin
mu
person1
0.1
person2
0.8
person3
0.4
df = DataFrame(df,columns=['jin','mu','shui','huo','tu'],index=['person1','person2','person3','person4'])
df
jin
mu
shui
huo
tu
person1
0.1
0.5
NaN
NaN
person2
0.8
0.7
NaN
NaN
person3
0.4
0.6
NaN
NaN
person4
NaN
NaN
NaN
NaN
提取某一个column,即某一个属性值。
df['jin']
person1 0.1
person2 0.8
person3 0.4
person4 NaN
Name: jin, dtype: float64
from numpy import arange
somecolumn = arange(0.1,0.8,0.3)
scln = Series(somecolumn,index = ['person1','person3','person4'])
df['shui'] = scln
df
jin
mu
shui
huo
tu
person1
0.1
0.5
0.1
NaN
person2
0.8
0.7
NaN
NaN
person3
0.4
0.6
0.4
NaN
person4
NaN
NaN
0.7
NaN
用DataFrame结构可以操作csv文件,并且获得其中的信息:
csv文件:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须象二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。CSV文件格式的通用标准并不存在,但是在RFC 4180中有基础性的描述。使用的字符编码同样没有被指定,但是7-bit ASCII是最基本的通用编码。CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
trainpath = './titanic/train.csv'
testpath = './titanic/test.csv'
trainset = pd.read_csv(trainpath)
trainset.head() # 看看前几行的内容
PassengerId
Survived
Pclass
Name
Sex
Age
SibSp
Parch
Ticket
Fare
Cabin
Embarked
0
1
0
3
Braund, Mr. Owen Harris
male
22.0
1
0
A/5 21171
7.2500
NaN
1
2
1
1
Cumings, Mrs. John Bradley (Florence Briggs Th…
female
38.0
1
0
PC 17599
71.2833
C85
2
3
1
3
Heikkinen, Miss. Laina
female
26.0
0
0
STON/O2. 3101282
7.9250
NaN
3
4
1
1
Futrelle, Mrs. Jacques Heath (Lily May Peel)
female
35.0
1
0
113803
53.1000
C123
4
5
0
3
Allen, Mr. William Henry
male
35.0
0
0
373450
8.0500
NaN
type(trainset)
pandas.core.frame.DataFrame
trainset.info()
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId 891 non-null int64
Survived 891 non-null int64
Pclass 891 non-null int64
Name 891 non-null object
Sex 891 non-null object
Age 714 non-null float64
SibSp 891 non-null int64
Parch 891 non-null int64
Ticket 891 non-null object
Fare 891 non-null float64
Cabin 204 non-null object
Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB
trainset.shape
(891, 12)
trainset.describe()
PassengerId
Survived
Pclass
Age
SibSp
Parch
Fare
count
891.000000
891.000000
891.000000
714.000000
891.000000
891.000000
mean
446.000000
0.383838
2.308642
29.699118
0.523008
0.381594
std
257.353842
0.486592
0.836071
14.526497
1.102743
0.806057
min
1.000000
0.000000
1.000000
0.420000
0.000000
0.000000
25%
223.500000
0.000000
2.000000
20.125000
0.000000
0.000000
50%
446.000000
0.000000
3.000000
28.000000
0.000000
0.000000
75%
668.500000
1.000000
3.000000
38.000000
1.000000
0.000000
max
891.000000
1.000000
3.000000
80.000000
8.000000
6.000000
数据基本样貌已经了解,接下来可以利用pandas结合seaborn和matplotlib等库函数对数据进行EDA(exploratory data analysis),深入了解数据样态,并为后续处理做准备。
最后
以上就是冷傲滑板为你收集整理的pythonpandas数据库_python中使用pandas数据库的全部内容,希望文章能够帮你解决pythonpandas数据库_python中使用pandas数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复