Python|熊猫 dataframe.add()
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas 就是其中之一,它使导入和分析数据变得更加容易。
Dataframe.add()
方法用于添加数据框和其他元素(二元运算符添加)。等效于数据框 + 其他,但支持用一个填充值替换其中一个输入中的缺失数据。
Syntax: DataFrame.add(other, axis=’columns’, level=None, fill_value=None)
Parameters:
other :Series, DataFrame, or constant
axis :{0, 1, ‘index’, ‘columns’} For Series input, axis to match Series index on
fill_value : [None or float value, default None] Fill missing (NaN) values with this value. If both DataFrame locations are missing, the result will be missing.
level : [int or name] Broadcast across a level, matching Index values on the passed MultiIndex level
Returns: result DataFrame
# Importing Pandas as pd
import pandas as pd
# Importing numpy as np
import numpy as np
# Creating a dataframe
# Setting the seed value to re-generate the result.
np.random.seed(25)
df = pd.DataFrame(np.random.rand(10, 3), columns =['A', 'B', 'C'])
# np.random.rand(10, 3) has generated a
# random 2-Dimensional array of shape 10 * 3
# which is then converted to a dataframe
df
注意: add()
函数类似于 '+' 操作,但是add()
为其中一个输入中的缺失值提供了额外的支持。
# We want NaN values in dataframe.
# so let's fill the last row with NaN value
df.iloc[-1] = np.nan
df
使用add()
函数向数据框添加一个常量值:
# add 1 to all the elements
# of the data frame
df.add(1)
请注意上面的输出, df dataframe.add dataframe.add()
函数中的 nan 单元格没有添加属性fill_value
。这将用分配的值填充缺失值(Nan)。如果两个数据框值都丢失,则结果将丢失。
让我们看看怎么做。
# We have given a default value
# of '10' for all the nan cells
df.add(1, fill_value = 10)
所有的nan单元格都先填充了 10,然后添加了 1。将系列添加到数据框:
对于系列输入,索引的维度必须与数据框和系列相匹配。
# Create a Series of 10 values
tk = pd.Series(np.ones(10))
# tk is a Series of 10 elements
# all filled with 1
# Add tk(series) to the df(dataframe)
# along the index axis
df.add(tk, axis ='index')
将一个数据框与其他数据框相加
# Create a second dataframe
# First set the seed to regenerate the result
np.random.seed(10)
# Create a 5 * 5 dataframe
df2 = pd.DataFrame(np.random.rand(5, 5), columns =['A', 'B', 'C', 'D', 'E'])
df2
让我们执行这两个数据帧的元素相加
df.add(df2)
请注意,生成的数据帧的维度为 10*5,并且在所有数据帧具有nan值的所有单元格中都具有nan值。
让我们修复它 -
# Set a default value of 10 for nan cells
# nan value won't be filled for those cells
# in which both data frames has nan value
df.add(df2, fill_value = 10)