pandas 中Series的map函数

Series的map方法可以接受一个函数或含有映射关系的字典型对象
使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。
(DataFrame中对应的是applymap()函数,当然DataFrame还有apply()函数)

1.字典映射

import pandas as pd
from pandas import Series, DataFrame

data = DataFrame({'food':['bacon','pulled pork','bacon','Pastrami',
            'corned beef','Bacon','pastrami','honey ham','nova lox'],
                  'ounces':[4,3,12,6,7.5,8,3,5,6]})
meat_to_animal = {
    'bacon':'pig',
    'pulled pork':'pig',
    'pastrami':'cow',
    'corned beef':'cow',
    'honey ham':'pig',
    'nova lox':'salmon'    }  

data['animal'] = data['food'].map(str.lower).map(meat_to_animal) 
data   

data['food'].map(lambda x: meat_to_animal[x.lower()])             

2.应用函数

In [579]: import pandas as pd

In [580]: from pandas import Series, DataFrame

In [581]: index = pd.date_range('2017-08-15', periods=10)

In [582]: ser = Series(list(range(10)), index=index)

In [583]: ser
Out[583]: 
2017-08-15    0
2017-08-16    1
2017-08-17    2
2017-08-18    3
2017-08-19    4
2017-08-20    5
2017-08-21    6
2017-08-22    7
2017-08-23    8
2017-08-24    9
Freq: D, dtype: int64


In [585]: ser.index.map(lambda x: x.day)
Out[585]: Int64Index([15, 16, 17, 18, 19, 20, 21, 22, 23, 24], dtype='int64')

In [586]: ser.index.map(lambda x: x.weekday)
Out[586]: Int64Index([1, 2, 3, 4, 5, 6, 0, 1, 2, 3], dtype='int64')

In [587]: ser.map(lambda x: x+10)
Out[587]: 
2017-08-15    10
2017-08-16    11
2017-08-17    12
2017-08-18    13
2017-08-19    14
2017-08-20    15
2017-08-21    16
2017-08-22    17
2017-08-23    18
2017-08-24    19
Freq: D, dtype: int64

In [588]: def f(x):
     ...:     if x < 5:
     ...:         return True
     ...:     else:
     ...:         return False
     ...:     

In [589]: ser.map(f)
Out[589]: 
2017-08-15     True
2017-08-16     True
2017-08-17     True
2017-08-18     True
2017-08-19     True
2017-08-20    False
2017-08-21    False
2017-08-22    False
2017-08-23    False
2017-08-24    False
Freq: D, dtype: bool
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PandasSeries提供了丰富的函数和方法,以下是一些常见的函数和方法及其说明: 1. head():返回Series的前n行,默认为5行。 ```python import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) print(s.head(3)) ``` 输出: ``` 0 1 1 2 2 3 dtype: int64 ``` 2. tail():返回Series的后n行,默认为5行。 ```python import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) print(s.tail(3)) ``` 输出: ``` 2 3 3 4 4 5 dtype: int64 ``` 3. describe():返回Series的统计信息,包括计数、均值、标准差、最小值、最大值等。 ```python import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) print(s.describe()) ``` 输出: ``` count 5.000000 mean 3.000000 std 1.581139 min 1.000000 25% 2.000000 50% 3.000000 75% 4.000000 max 5.000000 dtype: float64 ``` 4. unique():返回Series的唯一值。 ```python import pandas as pd s = pd.Series([1, 2, 3, 3, 4, 4, 5]) print(s.unique()) ``` 输出: ``` [1 2 3 4 5] ``` 5. value_counts():返回Series每个值的出现次数。 ```python import pandas as pd s = pd.Series([1, 2, 3, 3, 4, 4, 5]) print(s.value_counts()) ``` 输出: ``` 4 2 3 2 5 1 2 1 1 1 dtype: int64 ``` 6. idxmax():返回Series最大值的索引。 ```python import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) print(s.idxmax()) ``` 输出: ``` 4 ``` 7. apply():对Series的每个元素应用一个函数。 ```python import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) print(s.apply(lambda x: x ** 2)) ``` 输出: ``` 0 1 1 4 2 9 3 16 4 25 dtype: int64 ``` 8. map():将Series的每个值根据一个字典进行映射。 ```python import pandas as pd s = pd.Series([1, 2, 3, 4, 5]) mapping = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E'} print(s.map(mapping)) ``` 输出: ``` 0 A 1 B 2 C 3 D 4 E dtype: object ``` 这些只是PandasSeries的一些常见函数和方法,还有很多其他的函数和方法可供使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值