Pandas DataFrame 行列操作

以下实验中的train.csv文件使用Digit Recognizer中的训练数据集

import pandas as pd  # 引用pandas库
import numpy as np # 引用Numpy库
dataset = pd.read_csv("../data/train.csv") #读取csv文件
dataset.head()  # 查看数据前5行

这里写图片描述


# 随机构造一个5行3列的DataFrame数据,列名分别定义为‘ABC’,行索引间隔为2
 df = pd.DataFrame(np.arange(15).reshape(5,3),index=list('abcde'),columns=list('ABC')) #

    A   B   C
a   0   1   2
b   3   4   5
c   6   7   8
d   9  10  11
e  12  13  14
df.irow(0) #取df的第一行, FutureWarning: irow(i) is deprecated. Please use .iloc[i]

A    0
B    1
C    2
Name: a, dtype: int32

df.iloc[0] #取df的第一行

A    0
B    1
C    2
Name: a, dtype: int32

df.iloc[[2]] # 按照index的序值,选择第3行
   A  B  C
c  6  7  8
df.loc[['b']] # 按照index的具体值,选择索引为'b'的那一行
   A  B  C
b  3  4  5
df['A'] # 选择表格中的'A'列,使用类字典属性,返回的是Series类型

a     0
b     3
c     6
d     9
e    12
Name: A, dtype: int32
df.A # 选择表格中的'A'列,使用点属性,返回的是Series类型

a    1.470787
b    0.253183
c   -0.061858
d    0.203922
e    0.364775
Name: A, dtype: float64
df[['A']] # 选择表格中的'A'列,返回的是DataFrame类型
    A
a   0
b   3
c   6
d   9
e  12
df[['A','B']] # 选择表格中的'A''B'列

    A   B
a   0   1
b   3   4
c   6   7
d   9  10
e  12  13
df[0:2] #返回第1行到第2行的所有行,前闭后开,包括前不包括后

   A  B  C
a  0  1  2
b  3  4  5
df[1:2] #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,
        #如果采用data[1]则报错

   A  B  C
b  3  4  5

df.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟df[1:2]A  B  C
b  3  4  5
df['a':'b'] #利用index值进行切片,返回的是**前闭后闭**的DataFrame, 
            #即末端是包含的  

   A  B  C
a  0  1  2
b  3  4  5
df.icol(0) # 取df的第一列 ,FutureWarning: icol(i) is deprecated. Please use .iloc[:,i]

a     0
b     3
c     6
d     9
e    12
Name: A, dtype: int32

df.iloc[:,0] #取df的第一列

a     0
b     3
c     6
d     9
e    12
Name: A, dtype: int32
df.tail(3) #返回df的后3行数据,默认为后五行,需要后十行则df.tail(10)

    A   B   C
c   6   7   8
d   9  10  11
e  12  13  14
df.iloc[-1] #选取DataFrame最后一行,返回的是Series

A    12
B    13
C    14
Name: e, dtype: int32

df.iloc[-1:] #选取DataFrame最后一行,返回的是DataFrame

    A   B   C
e  12  13  14
df.loc['a',['B','C']] #返回‘a’行'B''C'列,这种用于选取行索引列索引已知

B    1
C    2
Name: a, dtype: int32
df.iat[1,1] #选取第二行第二列,用于已知行、列位置的选取。
4
df.ix[:,[0,1,2]] #不知道列名只知道列的位置时

    A   B   C
a   0   1   2
b   3   4   5
c   6   7   8
d   9  10  11
e  12  13  14

选择DataFrame中列名以XXX开头的列:

import pandas as pd
import numpy as np

df = pd.DataFrame({'foo.aa': [1, 2.1, np.nan, 4.7, 5.6, 6.8],
                   'foo.fighters': [0, 1, np.nan, 0, 0, 0],
                   'foo.bars': [0, 0, 0, 0, 0, 1],
                   'bar.baz': [5, 5, 6, 5, 5.6, 6.8],
                   'foo.fox': [2, 4, 1, 0, 0, 5],
                   'nas.foo': ['NA', 0, 1, 0, 0, 0],
                   'foo.manchu': ['NA', 0, 0, 0, 0, 0],})

df[df.columns[pd.Series(df.columns).str.startswith('foo')]]
>   foo.aa  foo.bars  foo.fighters  foo.fox foo.manchu
0     1.0         0             0        2         NA
1     2.1         0             1        4          0
2     NaN         0           NaN        1          0
3     4.7         0             0        0          0
4     5.6         0             0        0          0
5     6.8         1             0        5          0

参考引用:http://blog.csdn.net/xiaodongxiexie/article/details/53108959
取制定列名下的第一行:year = df['years'].iloc[i]

Pandas DataFrame 是 Python 中使用最广泛的数据结构之一,它采用表格的形式存储数据,类似于 Excel 中的表格。DataFrame 可以进行多种操作,如数据整理、切片、查询、聚合等。 1. 创建 DataFrame 可以通过 pandas.read_csv(),pandas.read_excel() 等方法导入已有数据文件,也可以手动创建。使用 pandas.DataFrame() 方法,将数据数组传递给 DataFrame 的构造函数即可创建 DataFrame。例如,以下创建一个有两个列的 DataFrame: ```python import pandas as pd data = {'name': ['Tom', 'Jerry'], 'age': [25, 30]} df = pd.DataFrame(data) ``` 2. 基本信息查看 使用 df.head() 和 df.tail() 方法可以查看 DataFrame 的头几行或尾几行数据,默认显示前五行或后五行。 使用 df.shape 可以查看行列数。 使用 df.info() 可以查看每一列的名字、数据类型和缺失值数量。 3. 数据选择与切片 可以使用 df.loc[] 和 df.iloc[] 方法选择行和列。 df.loc[] 通过标签选择数据,可以选择一行或多行数据。例如,选取第一行数据: ```python df.loc[0] ``` df.iloc[] 通过位置选择数据,也可以选择一行或多行。例如,选取第一行数据: ```python df.iloc[0] ``` 可以通过 df["column_name"] 选取列。例如,以下选取列 name: ```python df["name"] ``` 4. 数据过滤与查询 可以通过布尔索引过滤数据。例如,以下选取 age 大于 25 的行: ```python df[df["age"] > 25] ``` 可以使用 df.query() 方法查询数据。例如,以下查询名字为 Tom 的行: ```python df.query("name == 'Tom'") ``` 5. 数据处理与聚合 可以使用 df.apply() 方法处理数据。例如,以下将 age 列中的数据加 10: ```python df["age"] = df["age"].apply(lambda x: x + 10) ``` 可以使用 df.groupby() 方法进行数据聚合。例如,以下对 age 列进行平均数聚合: ```python df.groupby("age")["age"].mean() ``` 以上是 Pandas DataFrame 的基本操作,包括创建 DataFrame、基本信息查看、数据选择与切片、数据过滤与查询、数据处理与聚合等。通过这些方法可以轻松地对 DataFrame 进行操作,方便地进行数据分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值