利用Python进行数据分析(6)-pandas库

目录

0. 回顾:

1. 定义dataframe对象

2. 选取元素

3. 赋值

4. 元素的所属关系

5. 删除一列

6. 筛选

7. index对象的方法

0. 回顾:

        之前我们学习了pandas其中一类series,这一节我们将学习另一类dataframe。

1. 定义dataframe对象

        最常用的方法是将一个dict对象传递给dataframe()构造函数。

        示例1

import pandas as pd

data = {'color': ['blue', 'red', 'green'],
        'price': [1, 3, 5]}
print(data)
df = pd.DataFrame(data)
print(df)

        运行结果为:

{'color': ['blue', 'red', 'green'], 'price': [1, 3, 5]}
   color  price
0   blue      1
1    red      3
2  green      5

        可以看到,运行之后,dataframe结构跟工作表相似。

        示例2:我们还可以选择自己感兴趣的列。

import pandas as pd

data = {'color': ['blue', 'red', 'green'],
        'price': [1, 3, 5]}
print(data)
df = pd.DataFrame(data, columns=['price'])
print(df)

        运行结果为:

{'color': ['blue', 'red', 'green'], 'price': [1, 3, 5]}
   price
0      1
1      3
2      5

        当我们没有给index传输时,默认从0开始,当然我们也可以自己添加。

        示例3

import pandas as pd

data = {'color': ['blue', 'red', 'green'],
        'price': [1, 3, 5]}
print(data)
df = pd.DataFrame(data, index=['一', '二', '三'])
print(df)

        运行结果为:

{'color': ['blue', 'red', 'green'], 'price': [1, 3, 5]}
   color  price
一   blue      1
二    red      3
三  green      5

        还可以使用更加简单的进行定义。

        示例4

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df)

        运行结果为:

   blue  red  green
一     0    1      2
二     3    4      5
三     6    7      8

2. 选取元素

        利用columns,index,values属性进行选取。

        示例5

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df.columns)
print(df.index)
print(df.values)

        运行结果为:

Index(['blue', 'red', 'green'], dtype='object')
Index(['一', '二', '三'], dtype='object')
[[0 1 2]
 [3 4 5]
 [6 7 8]]

        选择相关列,则直接用名称作为索引就行。

        示例6

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df['red'])

        运行结果为:

一    1
二    4
三    7
Name: red, dtype: int32

        调用某一行时直接用iloc进行索引就行。

        示例7

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df.iloc[0])

        运行结果为:

blue     0
red      1
green    2
Name: 一, dtype: int32

        当要获取其中的一个元素,两个方法叠加就行。

        示例8

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df['red'].iloc[0])

        运行结果为:

1

3. 赋值

        利用和获取元素类似的方法进行赋值,跟字典的操作相似。

        示例9

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
df['orange'] = 7
print(df)
df['black'] = pd.Series(np.arange(3), index=['一', '二', '三'])
print(df)

        运行结果为:

   blue  red  green  orange
一     0    1      2       7
二     3    4      5       7
三     6    7      8       7
   blue  red  green  orange  black
一     0    1      2       7      0
二     3    4      5       7      1
三     6    7      8       7      2

4. 元素的所属关系

        利用isin()来判读元素是否属于其中。

        示例10

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df.isin([3]))
print(df[df.isin([3])])

        运行结果为:

    blue    red  green
一  False  False  False
二   True  False  False
三  False  False  False
   blue  red  green
一   NaN  NaN    NaN
二   3.0  NaN    NaN
三   NaN  NaN    NaN

5. 删除一列

        利用del()函数进行删除。

        示例11

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df)
del df['red']
print(df)

        运行结果为:

   blue  red  green
一     0    1      2
二     3    4      5
三     6    7      8
   blue  green
一     0      2
二     3      5
三     6      8

6. 筛选

        跟series用法类似。

        示例12

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df)
del df['red']
print(df[df < 4])

        运行结果为:

   blue  red  green
一     0    1      2
二     3    4      5
三     6    7      8
   blue  green
一   0.0    2.0
二   3.0    NaN
三   NaN    NaN

7. index对象的方法

        利用idmin()和idmax()函数获取索引值最小和最大的元素。

        示例13

import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape([3, 3]),
                  index=['一', '二', '三'],
                  columns=['blue', 'red', 'green'])
print(df)
print(df.idxmin())
df.loc[df.index[1], 'red'] = 10
print(df.idxmax())

        运行结果为:

   blue  red  green
一     0    1      2
二     3    4      5
三     6    7      8
blue     一
red      一
green    一
dtype: object
blue     三
red      二
green    三
dtype: object
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值