pandas基本介绍

  • Post author:
  • Post category:其他




Pandas介绍

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。
Pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。
Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。
Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。
Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征



数据结构

Series 是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。
DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。



Pandas 应用

Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。


'''pandas基本介绍'''
'''
如果把numpy比作列表的话,pandas更像是字典形式的numpy
'''
'''
定义DataFrame的两种方式:
1.直接导入字典
2.导入自动生成的
'''
import numpy as np
import pandas as pd

s = pd.Series([1, 2, 3, 33, np.nan, 44, 1])  # 序列他比列表多了一个index
print("# 会生成两列,一列是index,一列是数组的值:\n", s, end="\n\n")

# date_range()是pandas中常用的函数,用于生成一个固定频率的DatetimeIndex时间索引。原型:
# date_range(start=None, end=None, periods=None)

datas = pd.date_range('20190101', periods=7)
print("# periods=7,说明会生成7个时间,开始时间为20190101:\n",datas,end="\n\n")
# 使用DataFrame创建表格 index默认行索引,columns默认列索引
df = pd.DataFrame(np.random.randn(7, 4), index=datas, columns=['a', 'b', 'c', 'd'])
print("# 使用DataFrame创建表格 index默认行索引,columns默认列索引:\n",df,end="\n\n")
'''
           |       a         b         c         d
--------------------------------------------------       
datas      |
           |       a         b         c         d
2019-01-01  1.390443  0.943523 -0.250015 -0.937293
2019-01-02  0.478537  0.891622 -0.009471  0.772718
2019-01-03 -0.620127 -1.297744  0.352404 -1.449165
2019-01-04 -0.002273  1.373092 -0.290291 -0.153854
2019-01-05 -1.335555  0.107416 -0.166542  0.913456
2019-01-06 -0.648300 -2.056751 -1.879867  0.850983
2019-01-07  0.295561  0.214722  0.222594  1.474603
'''

'''如果没有给行列的索引,就会默认0,1,2.....作为行列索引'''
# df1 = pd.DataFrame(np.arange(12).reshape((3,4)))
# print(df1)
#
# df2 = pd.DataFrame({'A': 1.,
#                     'B': pd.date_range('20190101', periods=4),                   # pd.Timestamp('20130102')
#                     'C': pd.Series(1,index=list(range(4)),dtype='float32'),
#                     'D': np.array([3]*4,dtype='int32'),
#                     'E': pd.Categorical(["test", "train", "test", "train"]),
#                     'F': 'foo'})
# print(df2)
# '''
#      A          B    C  D      E    F
# 0  1.0 2019-01-01  1.0  3   test  foo
# 1  1.0 2019-01-02  1.0  3  train  foo
# 2  1.0 2019-01-03  1.0  3   test  foo
# 3  1.0 2019-01-04  1.0  3  train  foo
# '''
# print(df2.dtypes)
# print(df2.columns)
# print(df2.values)
# print(df2.describe())                   # 数据帧描述
# print(df1.T)
# print(df2.sort_index(axis=1, ascending=False))          # ascending = False 表示倒叙输出,axis = 1表示按照列输出
# print(df2.sort_index(axis=0, ascending=False))          # ascending = False 表示倒叙输出,axis = 1表示按照列输出
# print(df2.sort_values(by = 'E'))                        # 'sort_values(by = '排序规则')'按照E中的值进行排序



版权声明:本文为weixin_39887317原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。