Pandas

1 Pandas的数据类型

pandas中有两种数据类型:DateFrame和Series。

1.1 Series

Series是一种类似于一维数组的对象,是由一组数据以及一组与之相关联的标签(即索引)组成的,具体的表现形式就是索引在左边,值在右边。

    1. 创建Series

直接通过列表创建(索引的值是默认的自动创建一个0到N-1的整数索引):

1
s1 = pd.Series([4,7,-5,3])
创建Series并且为其设置索引:
1
s2 = pd.Series([4,7,-5,3], index=['d','b','a','c'])
通过字典创建Series————传入一个字典,则结果Series中的索引就是原字典的键,而且是按键有序排列:
1
2
sdata = {'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
s3 = pd.Series(sdata)
* b. Series的基本属性和函数

通过valuesindex属性获取其值和索引:

1
2
3
s = pd.Series([4,7,-5,3])
s.values
s.index
通过它的isnull函数来检测空数据:
1
s.isnull()
### 1.2 DateFrame

DataFrame是一个表型的数据结构。它含有一组有序的列,每列间可以是不同的数据类型(数值,字符串,布尔值等)。DataFrame既有行索引又有列索引,其中的数据是以一个或多个二维块存放的,而不是列表,字典或别的一维数据结构。虽然它是个二维的结构,但是DataFrame任然可以表示更高维的数据(利用层次化索引的表结构)。

  • a.创建DateFrame

由等长的列表或Numpy数组组成的字典创建DataFrame:

1
2
3
4
data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000,,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]}
df = pd.DataFrame(data)
由等长的列表或Numpy数组组成的字典创建DataFrame,同时指定列顺序:
1
2
3
4
data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]}
df = pd.DataFrame(data,columns=['year','state','pop'])
其他可以用于创建DateFrame的数据格式:二维ndarray、另一个DateFrame等等。

2 Pandas之文件相关

Pandas读取文件

  • csv文件 csv文件中的数据用","隔开。

    1
    2
    import pandas as pd
    train = pd.read_csv('数据路径/train.csv')

  • tsv文件 tsv文件中的数据用"(tab)隔开。

    1
    train = pd.read_csv('数据路径/train.tsv', sep='\t')
    ### Pandas写入文件

  • 写入到csv文件

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd

#任意的多组列表
a = [1,2,3]
b = [4,5,6]

#字典中的key值即为csv中列名
dataframe = pd.DataFrame({'a_name':a,'b_name':b})

#将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("test.csv",index=False,sep=',')
  • 写入到tsv文件
1
2
3
4
5
6
7
8
9
10
11
import pandas as pd

#任意的多组列表
a = [1,2,3]
b = [4,5,6]

#字典中的key值即为csv中列名
dataframe = pd.DataFrame({'a_name':a,'b_name':b})

#将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("test.tsv",index=False,sep='\t')

Pandas之查看、操作数据

查看

  • 查看文件顶部几行数据(默认6行)

    1
    df.head()

  • 查看文件尾部几行数据(可自己设置参数)

    1
    df.tail(3)

  • 查看文件列名(第一行)

    1
    df.columns

  • 查看文件索引

    1
    df.index

  • 查看简单的数据的统计值

    1
    df.describe()

  • 排序 排序某一列的数据

    1
    df.sort_values(by='columns_name')
    ### 删除一列

  • del

    1
    del df['column-name']

  • drop

    1
    df.drop('columns',axis=1)#删除不改表原始数据,可以通过重新赋值的方式赋值该数据
    1
    df.drop('columns',axis=1,inplace='True') #改变原始数据

参考

pandas user guide

Pandas的DataFrame和Series及其操作