pandas入门 数据结构

编程入门 行业动态 更新时间:2024-10-23 22:36:10

pandas入门 <a href=https://www.elefans.com/category/jswz/34/1769880.html style=数据结构"/>

pandas入门 数据结构

series

一个一维的数据对象,包含一个值序列,还有数据标签(索引,index)。也可以视为一个长度有限且有序的字典,

obj4 = pd.Series(sdata, states)

pd.Series()接收一个数组或者字典,作为实际数据,第二个参数是索引,不显式说明就默认从0开始。
对于缺失值,可以使用isnull和notnull两个函数

# 缺失数据
print(pd.isnull(obj4))
print(pd.notnull(obj4))
print(obj4.notnull())
print(obj4.isnull())

数据对齐特性:一方为nan,计算后也是nan。
Series对象自身和其索引都有name属性:

obj4.name = 'poulation'
obj4.index.name = 'state'
print(obj4.name)
print(obj4.index.name)
print(obj4)
poulation
state
state
Hdf          NaN
Ohio     35000.0
Texas    71000.0
Name: poulation, dtype: float64

Series的索引可以通过按位置赋值的方式进行改变。

DataFrame

datefram是矩阵的数据表,包含已排列的列集合。既有行索引也有列索引,可以被视作一个共享相同索引的series的字典。
创建方法:

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
print(frame)

自动为series分配索引

    state  year  pop
0    Ohio  2000  1.5
1    Ohio  2001  1.7
2    Ohio  2002  3.6
3  Nevada  2001  2.4
4  Nevada  2002  2.9
5  Nevada  2003  3.2

使用.head方法可以读取头部的五行

print(frame.head())
state  year  pop
0    Ohio  2000  1.5
1    Ohio  2001  1.7
2    Ohio  2002  3.6
3  Nevada  2001  2.4
4  Nevada  2002  2.9

可以指定列的顺序,同时如果列名不在data里,将会用缺失值填充

df_1 = pd.DataFrame(data, columns=['year', 'pop', 'state', 'ks'])
print(df_1)
year  pop   state   ks
0  2000  1.5    Ohio  NaN
1  2001  1.7    Ohio  NaN
2  2002  3.6    Ohio  NaN
3  2001  2.4  Nevada  NaN
4  2002  2.9  Nevada  NaN
5  2003  3.2  Nevada  NaN

可以按照字典型标记或者属性检索series,也就是其中的一列

print(df_1['year'])
print(df_1.year)
0    2000
1    2001
2    2002
3    2001
4    2002
5    2003
Name: year, dtype: int64

列的引用是可以修改的,可以将列赋值为标量值或者值数组,要确保值的长度必须与dataframe的长度保持一致。
如果将series赋值给一列时,回按照dataframe的索引重新排列,并在空缺处填充缺失值

df_1['ks'] = 1.0
print(df_1)
df_1['ks'] = np.arange(6)
print(df_1)

del方法可以用于移除之前新建的列:

del df_1['ks']
print(df_1.columns)
Index(['year', 'pop', 'state'], dtype='object')

从DataFrame中选取的列是数据的视图,而不是拷贝。因此,对Series的修改会映射到DataFrame中。如果需要复制,则应当显式地使用Series的copy方法。

data = df_1['ks'].copy()
print(data)
0    NaN
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN
Name: ks, dtype: object

行的选择:可以通过位置或者特殊属性loc选取

print(df_1.loc[2])
year     2002
pop       3.6
state    Ohio
ks        NaN
Name: 2, dtype: object

除了上面的列表格式,还可以使用嵌套字典的方式:
也可以使用包含series的字典。

pop = {'Nevada': {2001: 2.4, 2002: 2.9},'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
df_2 = pd.DataFrame(pop)
print(df_2)
print(df_2.T)Nevada  Ohio
2001     2.4   1.7
2002     2.9   3.6
2000     NaN   1.52001  2002  2000
Nevada   2.4   2.9   NaN
Ohio     1.7   3.6   1.5

这样最外层的键是列的索引,内层的键是行的索引。可以转置
如果显式指定索引,就不会采用默认的排序

DataFrame的values属性会将包含在DataFrame中的数据以二维ndarray的形式返回:

print(df_2.index)
print(df_2.values)
Index([2001, 2002, 2000], dtype='int64')
[[2.4 1.7][2.9 3.6][nan 1.5]]

索引对象

pandas中的索引对象是用于存储轴标签和其他元数据的(例如轴名称或标签)
索引对象是不可变的,

更多推荐

pandas入门 数据结构

本文发布于:2023-12-07 01:43:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1669690.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据结构   入门   pandas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!