pandas基础

Pandas 常用的数据结构有两种:Series 和 DataFrame

首先介绍下Series:

      Series 是一个带有 名称 和索引的一维数组,既然是数组,肯定要说到的就是数组中的元素类型,在 Series 中包含的数据类型可以是整数、浮点、字符串、Python对象等。

例如:data = ['a','b','c']                       输出结果为0    a
           x = pd.Series(data)                                   1    b
                                                                             2    c
                                                                             dtype: object

若想修改index,只需要加上x.index = ['x','y','z']

若想为index这一列起名字,语句为x.index.name = '索引'

简单来说,一个 Series 包括了 data、index 以及 name

# 构建索引
name = pd.Index(["Tom", "Bob", "Mary", "James"], name="name")

# 构建 Series
user_age = pd.Series(data=[18, 30, 25, 40], index=name, name="frist_test")

或者:

series1 = pd.Series([10, 20, 30, 40], index=list('abcd'))

还可以:

s=pd.Series({'a':3,'b':4,'c':5,'f':6,'e':8})

user = pd.Series(data=[18, 30, 25, 40], index=name, name="user", dtype=float)        

运行结果为:

Bob     18.0
Joe     30.0
Will    25.0
Bob     40.0
Name: user, dtype: float64

如何从一个Series中取数据呢,这里和字典很相似,例如取x中的索引值,x.get('x')

Series 除了像 dict 外,也非常像 ndarray,这也就意味着可以采用切片操作。

例如x[:3]输出前三个,

结果为:

Bob     18.0
Joe     30.0
Will    25.0
Name: user, dtype: float64

下面介绍DataFrame:

DataFrame 是一个带有索引的二维数据结构,每列可以有自己的名字,并且可以有不同的数据类型。

存储数据:

可以构建一个 dict,key 是需要存储的信息,value 是信息列表。然后将 dict 传递给 data 参数

index = pd.Index(data=["Tom", "Bob", "Mary", "James"], name="name")
data = {
   "age": [18, 30, 25, 40],
   "city": ["BeiJing", "ShangHai", "GuangZhou", "ShenZhen"]
}
user_info = pd.DataFrame(data=data, index=index)

也可以先构建一个二维数组,然后再生成一个列名称列表

data = [[18, "BeiJing"],
       [30, "ShangHai"],
       [25, "GuangZhou"],
       [40, "ShenZhen"]]
columns = ["age", "city"]

user = pd.DataFrame(data=data, index=index, columns=columns)

       age       city
name                 
Tom     18    BeiJing
Bob     30   ShangHai
Mary    25  GuangZhou
James   40   ShenZhen

生成DataFrame后如何访问行?例如访问index=‘’Tom‘’的信息?

这就需要使用loc方法

user.loc["Tom"]

除了使用索引名字来确定位置,也可以通过第几行来确定,这时就需要使用iloc方法

user.iloc[0]

若访问多行,则可以通过切片操作轻易实现:user.iloc[1:3]

访问列只需要user["age"]即可

新增/删除列:

新增列只需要user.sex['man']就可以自动创建新的一列,且值均为man

也可以通过user["sex"]=['man','woman','man','woman']来设置不同的值

删除列则需要使用pop方法,x.pop('sex')

以上的方法都是基于原DataFrame来进行操作的,操作完后原来的DataFrame也会发生变化,若想保持原有的DataFrame保持不变就需要使用assign方法:

s = user.assign(sex = ['man','man','woman','man'])

本文有很多地方采用了下面这个博客:

https://blog.csdn.net/csdnsevenn/article/details/81351532

猜你喜欢

转载自blog.csdn.net/Mr_wuliboy/article/details/81449444
今日推荐