python (八Pandas 表格处理)

Posted 谦曰盛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python (八Pandas 表格处理)相关的知识,希望对你有一定的参考价值。

pandas有两个数据结构,一个是series 另一个是DataFrame

 

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
from numpy import nan as NA
from pandas import DataFrame, Series

%matplotlib inline

  

 

series 本质上是一维数组

# Series
# 数组与字典的结合,有序,但是可以使用非数字下标索引。

 

可以直接通过索引访问

obj = Series([4, 7, -5, 3])
obj

  

0    4
1    7
2   -5
3    3
dtype: int64
obj2 = Series([4, 7, -5, 3], index=[\'d\', \'b\', \'a\', \'c\']) #可以指定数组下标
print(obj2)
print(obj2.index)
d    4
b    7
a   -5
c    3
dtype: int64
Index([\'d\', \'b\', \'a\', \'c\'], dtype=\'object\')
print(obj2[1])
print(obj2[\'c\'])
7
3
obj = Series([4, 7, -5, 3])
obj
0    4
1    7
2   -5
3    3
dtype: int64
sdata = {\'Ohio\': 35000, \'Texas\': 71000, \'Oregon\': 16000, \'Utah\': 5000}
obj3 = Series(sdata) # 使用字典初始化Series,但是顺序没有保证。
obj3  
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
dtype: int64
obj3 + obj4 # 对应索引位置相加,对不上的设置为None 

obj = Series([4, 7, -3, 2])
obj.sort_values() # 根据值排序
2   -3
3    2
0    4
1    7
dtype: int64
index = [\'d\', \'c\', \'a\', \'b\']
obj = Series([4, 7, -3, 2], index=index)
index = sorted(index)
obj = obj.reindex(index)
obj
a   -3
b    2
c    7
d    4
dtype: int64
# DataFrame
# 本质上就是一个二维数组,用index定位行,用columns定位列。
# col_1 col_2 ... col_n
# index_1 x11 x12 x1n 
# index_2 x21 x22 x2n
# ...
# index_m xm1 xm2 xmn

data = {\'state\': [\'Ohio\', \'Ohio\', \'Ohio\', \'Nevada\', \'Nevada\'],
  \'year\': [2000, 2001, 2002, 2001, 2002],
  \'pop\': [1.5, 1.7, 3.6, 2.4, 2.9]}     # key代表列的名字,对应的数组就是这个列的值。
frame = DataFrame(data)
frame

 注意:DataFrame中行和列形式,df[row, col]

print(frame - s) # 每一行减去对应的s,本质上每一行在对应的索引位置上相减。

frame = DataFrame(np.random.randn(4, 3),
columns=list(\'bde\'),
index=[\'Utah\', \'Ohio\', \'Texas\', \'Oregon\'])
print(frame)
# np.abs(frame) # 元素级函数
               b         d         e
Utah    0.062497  0.288348 -0.808569
Ohio    0.349030  0.088106  0.930447
Texas  -0.422867 -0.349967 -1.472045
Oregon  0.664530 -0.415166  0.494318
# 排序
frame = DataFrame(np.arange(8).reshape((2, 4)),
index=[\'three\', \'one\'],
columns=[\'d\', \'a\', \'b\', \'c\'])
frame.sort_index() # 按行索引排序

frame.sort_index(axis=1, ascending=False) # 按列名降序排序

frame = DataFrame({\'b\': [4, 7, -3, 2], \'a\': [0, 1, 0, 1]})
frame

 

# 数据合并,首先复习一下SQL关于join的概念。
# outer: 左右,左-,-右
# inner:左右
# left: 左右,左-
# right: 左右,-右

# 其他需要的知识点
# 1. pivot和melt
# 2. 值替换
# 3. 数据切割
# 4. 排列组合和随机采样

  

 

以上是关于python (八Pandas 表格处理)的主要内容,如果未能解决你的问题,请参考以下文章

Python3快速入门(十五)——Pandas数据处理

pandas GroupBy上的方法apply:一般性的“拆分-应用-合并”

python pandas multiindex片段

pandas 怎么处理表格中的空值

机器学习代码基础-- Pandas速成

Python 八Python模块