chapter.pandas1.1

pandas数据结构

pandas有两个基本的数据结构:Series和DataFrame。
1.Series
Series数据结构类似于一位数组,但它是由一组数据和一组对应的索引组成的。通过一组列表数据即可产生最简单的Series数据。
尝试一下:

from pandas import Series,DataFrame
import pandas as pd
data=Series([2,3,4,5])
print(data)

运行结果:

0    2
1    3
2    4
3    5
dtype: int64

Series 数据的索引在左边,值在右边,如果没有自己设置索引的话,默认索引为0-N,尝试一下设置索引。

from pandas import Series,DataFrame
import pandas as pd
data=Series([2,3,4,5],index=['a','b','c','d'])
print(data)

运行结果:

a    2
b    3
c    4
d    5
dtype: int64

Series数据中的索引和值一一对应,类似于python字典数据,所以可以通过字典数据来创建Series。
尝试如下:

from pandas import Series,DataFrame
import pandas as pd
data={
    '华为':2000,
    '苹果':6000,
    '小米':1299,
    'oppo':2999
}
print(Series(data))

运行结果如下:

华为      2000
苹果      6000
小米      1299
oppo    2999
dtype: int64

字典结构是无序的,所以Series也是无序的,我们想按照价格从大到小排列,所以就要按照自己的意愿进行指定索引。

from pandas import Series,DataFrame
import pandas as pd
data={
    '华为':2000,
    '苹果':6000,
    '小米':1299,
    'oppo':2999
}
data1=['苹果','oppo','华为','小米']
print(Series(data,index=data1))

这样修改之后,运行结果:

苹果      6000
oppo    2999
华为      2000
小米      1299
dtype: int64

可以看出我们指定索引成功。
2.DataFrame
DataFrame数据是Python数据分析最常用的数据,无论是创建还是引入外部数据,我们首先想到的是如何转换为DataFrame数据,原因是其为表格型数据,类似于Excel。
创建第一个DataFrame数据(创建数据方式有很多,最常用的是传入由数组列表或者元组组成的字典)

from pandas import Series,DataFrame
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉']
}
df=DataFrame(data)
print(df)
     战队名称  城市
0     AG超玩会  成都
1    Hero久竞  上海
2        We  上海
3  eStarPro  武汉

打印结果有小瑕疵,通过查阅资料使用 from IPython.display import display

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉']
}
df=DataFrame(data)
display(df)

运行结果:
在这里插入图片描述
3.使用DataFrame选取数据
3.1 选取列

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉']
}
df=DataFrame(data)
display(df)
display(df['战队名称'])

运行结果:
在这里插入图片描述
更进一步,选取多列数据。

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉']
}
df=DataFrame(data)
display(df)
display(df[['战队名称','城市']])

在这里插入图片描述

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
display(df[['战队名称','城市']])

在这里插入图片描述
3.2选取行

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
a=df.set_index('战队名称')
display(a[0:2])

在这里插入图片描述
指定性选取行,假设去We和eStarPro

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
a=df.set_index('战队名称')
display(a['We':'eStarPro'])

在这里插入图片描述
假设取AG超玩会和eStarPro行

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
a=df.set_index('战队名称')
display(a['AG超玩会':'eStarPro'])

在这里插入图片描述
会发现一下子全部选取出来了,显然,切片方法选取行有很大局限性,如果想单独选取行可以使用loc和iloc方法实现,例:
选取eStarPro 使用loc

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
a=df.set_index('战队名称')
display(a.loc['eStarPro'])

在这里插入图片描述
使用iloc

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
a=df.set_index('战队名称')
display(a.iloc[3])

在这里插入图片描述
使用iloc选取AG超玩会和eStarPro

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
a=df.set_index('战队名称')
display(a.iloc[[0,3]])

在这里插入图片描述
3.3对行和列进行操作(增,删,改,查)
3.3.1 增
在上述的基础上,再增加一个战队信息。

new_data={
    '战队名名':'VG',
    '城市':'上海',
    '人员':10
}

代码如下

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
new_data={
    '战队名称':'VG',
    '城市':'上海',
    '人员':10
}
df=df.append(new_data,ignore_index=True)#忽略索引值
display(df)

在这里插入图片描述
假如这都是2019年的信息,这里我们新建一列用于存放该信息。
df['年份']=2019

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
new_data={
    '战队名称':'VG',
    '城市':'上海',
    '人员':10
}
df=df.append(new_data,ignore_index=True)#忽略索引值
df['年份']=2019
display(df)

在这里插入图片描述
如何所增加的值不一样,该如何处理呢?
可以传入列表或数组结构数据进行赋值。例:传入数据df['成立年限']=[5,4,6,3,5]

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
new_data={
    '战队名称':'VG',
    '城市':'上海',
    '人员':10
}
df=df.append(new_data,ignore_index=True)#忽略索引值
df['年份']=2019
df['成立年限']=[5,4,6,3,5]
display(df)

在这里插入图片描述
声明:数据是自己随意添加的,只是做自己学习数据使用。
3.3.2 删
如果去掉一个战队该如何实现呢?
通过drop方法

from pandas import Series,DataFrame
from IPython.display import display
import pandas as pd
data={
    '战队名称':['AG超玩会','Hero久竞','We','eStarPro'],
    '城市':['成都','上海','上海','武汉'],
    '人员':[10,11,8,5]
}
df=DataFrame(data)
display(df)
new_data={
    '战队名称':'VG',
    '城市':'上海',
    '人员':10
}
df=df.append(new_data,ignore_index=True)#忽略索引值
df['年份']=2019
df['成立年限']=[5,4,6,3,5]
display(df)
new_df=df.drop(2)
display(new_df)

在这里插入图片描述
删除年份列

new_df=df.drop('年份',axis=1)
display(new_df)

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值