Pandas的运算方法及缺失值

本文介绍了Pandas在运算时如何保留索引和列标签,以及如何处理缺失值。Pandas在运算中自动对齐索引,对缺失值默认处理为NaN,并提供了剔除、填充等方法。涉及的操作包括Series和DataFrame的运算、缺失值发现、剔除和填充,如dropna和fillna函数。还探讨了对NaN不敏感的函数,如np.nansum等。
摘要由CSDN通过智能技术生成

Pandas基于Numpy,相应的运算也是基于Numpy的运算,只不过多了⼀些Pandas的内容,比如运算
结果保留索引和列标签,传递通用函数的时候会自动对齐索引等。

对通用函数保留索引和列标签

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(100, size=(3,5)), columns=["A", "B", "C",
"D", "E"])
print("df=\n", df)
#如果对df使⽤通用函数,成成的结果是保留索引和列标签的
df2 = np.exp(df)
print("df2 \n", df2)
df=
 A B C D E
0 77 86 86 53 98
1 56 92 27 0 83
2 6 66 7 54 44
df2
 A B C D E
0 2.758513e+33 2.235247e+37 2.235247e+37 1.041376e+23 3.637971e+42
1 2.091659e+24 9.017628e+39 5.320482e+11 1.000000e+00 1.112864e+36
2 4.034288e+02 4.607187e+28 1.096633e+03 2.830753e+23 1.285160e+19

自动对齐索引

在对Series或者DataFrame进行二元运算的时候, Pandas会在计算过程中对齐两边索引,这对于不完
整数据的处理极其重要。
在运算⼯程中,对于缺失值的处理采用默认缺失值处理方法,⼀般是添加NaN。如果想指定缺失值的填充内容,需要:

  • 采用Pandas的运算方法,而不是使用运算符
  • fill_value参数代表填充的内容
    在指定fill_value的时候,需要注意点是,此时是先对参与运算的数据进⾏缺省值处理,然后才运算,这
    样很多因为一方是NaN而最终结果也是NaN的运算因为换了缺省值而能够正常运算。而不是先运算,得
    到缺省值后再处理。
    最终结果的索引内容是两个运算索引的并集。

Series的索引自动对齐

# 此处对于缺失值的处理采⽤默认⽅法,即对于⼆元运算⽅法
# 只要由⼀⽅没有数据,则⽤NaN填充,任何数据与NaN运算结果都是NaN
s1 = pd.Series({
   "A": 1, "B":2, "C":3, "D":4, "E":5}, name="ONE")
s2 = pd.Series({
    "D":4, "E":5, "F":6, "G":7}, name="TWO")
# 采⽤运算符,此时缺失值只能使⽤默认的值
print("s1 + s2 =\n", s1 + s2)
# 想更换缺失值的处理内容,需要⽤到pandas的运算⽅法和fill—value参数
print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值