学习 DataFrame 对象的高级技巧

学习 DataFrame 对象的高级技巧

在上一节中,我们讲解了可以对数据帧对象执行的基本操作。在本节中,我们将研究数据帧对象上的下一级别操作,以进行数据评估和转换。以下小节将讨论这些操作。

替换数据

一种常见的需求是用另一组值替换数字数据或字符串数据。pandas 库中有很多选项可以用来进行此类数据替换。这些操作最常用的方法是使用 at 方法。at 方法提供了一种访问或更新数据帧中任意单元格数据的简便方法。对于批量替换操作,也可以使用 replace 方法,我们可以通过多种方式使用该方法。例如,我们可以使用该方法将一个数字替换为另一个数字,或将一个字符串替换为另一个字符串,或者替换任何与正则表达式匹配的内容。此外,我们还可以使用该方法替换通过列表或字典提供的任何条目。在下面的代码示例中,我们将介绍大部分替换选项。在本代码示例中,我们将使用与之前代码示例中相同的数据帧对象。以下是示例代码:

import pandas as pd

weekly_data = {
   '星期': ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'],
               '温度':[40, 33, 42, 31, 41, 40, 30],
               '天气': ["晴天", "多云", "晴天", "下雨", "晴天", "多云", "下雨"]}


df = pd.DataFrame(weekly_data)

df.index = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']

print(df)

以上代码的输出结果是:

MON  星期一  40  晴天
TUE  星期二  33  多云
WED  星期三  42  晴天
THU  星期四  31  下雨
FRI  星期五  41  晴天
SAT  星期六  40  多云
SUN  星期日  30  下雨

接下来,我们用这个数据帧对象,一个个地讲解几个替换操作。

  • 把数据帧中的出现的所有数字 40 替换为 39

    df.replace(40,39, inplace=True)
    
  • 把数据帧中所有的 晴天 替换为

    df.replace('晴天', '晴', inplace=True)
    
  • 用正则表达式把满足条件的字符串替换为另一个,在这里是把 多云 替换为

    df.replace(to_replace="^多.*",value="阴",inplace=True,regex=True)
    
  • 一次性使用一个字符串列表中的字符串替换另一个字符串列表中的列表的字符串。

    df.replace(["星期一", "星期二"], ["周一", "周二"], inplace=True)
    
  • 使用字典中的键-值对,替换所有字符串。是被替换的字符串,是替换字符串:

    df.replace({
         "星期三": "周三", "星期四": "周四"}, inplace=True)
    
  • 使用两个字典,替换指定列中的字符串。在这两个字典中,是列名字,是被替换的、替换的值,如下所示:

    df.replace({
         "星期": "星期五"}, {
         "星期" : "周五"}, inplace=True)
    

    在这个语句中,前一个字典用来指名列名字和被替换的值,第二个字典用来指明同一个列和替换值。

  • 使用嵌套字典,替换多个字符串,如下所示:

    df<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dowhileprogramming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值