- pandas中最主要的两个数据结构:
Series
、DataFrame
- 一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。
import pandas as pd
obj = pd.Series([4, 7, -5, 3])
obj
"""
输出
0 4
1 7
2 -5
3 3
dtype: int64
"""
- Series 的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引,会自动创建0到N-1的整数型索引。可以通过Series 的value和index属性获取其数组表示形式和索引对象
obj.values
"""
输出
array([ 4, 7, -5, 3], dtype=int64)
"""
obj.index
"""
输出
RangeIndex(start=0, stop=4, step=1)
"""
- 创建带标记索引的 Series
obj2 = pd.Series([4, 7], index=['d', 'e'])
obj2
"""
输出
d 4
e 7
dtype: int64
"""
- 可以通过索引的方式选取Series中的单个或一组值
obj2['e']
"""
输出
7
"""
obj2[['e','d']]
"""
输出
e 7
d 4
dtype: int64
"""
- 通过字典创建 Series
sdata = {'ohio': 35000, 'tesas': 71000}
obj3 = pd.Series(sdata)
obj3
"""
输出
ohio 35000
tesas 71000
dtype: int64
"""
- 如果只传入字典 , Series 中索引就是原字典的键(有序排列)。可以传入排序号的字典键以改变序列。
states = ['califor', 'tesas', 'ohio']
obj4 = pd.Series(sdata, index=states)
obj4
"""
输出
califor NaN
tesas 71000.0
ohio 35000.0
dtype: float64
"""
DataFrame
DataFrame 是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型。
DataFrame 既有行索引也有列索引。DataFrame 中的数据是以一个或多个 二维块存放的。
- 传入一个由等长列表或NumPy数组组成的字典,结果DataFrame会自动加上索引
data = {'state': ['ohio','ohio','nevada','nevada'],
'year': [2000,2001,2001,2002],
'pop': [1.5,1.7,2.4,2.9]}
frame = pd.DataFrame(data)
frame
输出
- 指定序列,列在数据中不存存在将会在结果中产生缺失值
frame2 = pd.DataFrame(data, columns=['year','state','pop', 'debt'], index=['one','two','three','four'])
frame2
输出
- 获取列,返回的是 Series 类型的序列
frame2['state']
输出
- 获取行,返回的是 Series 类型的序列
frame2.loc['one']
输出
- 将列表或数组赋值给某个列时,长度必须跟DataFrame的长度匹配。如果赋值的是一个Series,就会精确匹配DataFrame的索引
val = pd.Series([-1.2,-1.5], index=['two','four'])
frame2['debt'] = val
frame2
输出
- 传入嵌套字典构造DataFrame,外层字典的键作为列,内层键则作为索引。
pop = {'ohio':{'2000':1.5,'2001':1.7}, 'nevada':{'2001':2.4}}
frame3 = pd.DataFrame(pop)
frame3
输出
- 重新索引,将创建一个符合新索引的对象,ffill 实现前向填充。
obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
obj3
obj3.reindex(range(6), method='ffill')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)