首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将dataframe中的每一行乘以不同dataframe的不同列,并将所有行的总和作为Python中的新列?

要将dataframe中的每一行乘以不同dataframe的不同列,并将所有行的总和作为Python中的新列,可以按照以下步骤进行操作:

  1. 首先,导入所需的库和模块:
代码语言:txt
复制
import pandas as pd
  1. 创建一个示例的dataframe:
代码语言:txt
复制
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
df2 = pd.DataFrame({'D': [10, 11, 12], 'E': [13, 14, 15], 'F': [16, 17, 18]})
  1. 使用apply函数和lambda表达式,将每一行的值与另一个dataframe的对应列相乘,并将结果存储在新列中:
代码语言:txt
复制
df1['New Column'] = df1.apply(lambda row: row['A'] * df2.loc[row.name, 'D'] + row['B'] * df2.loc[row.name, 'E'] + row['C'] * df2.loc[row.name, 'F'], axis=1)

在上述代码中,lambda表达式中的row代表每一行的数据,通过row.name可以获取行索引,然后使用.loc方法获取df2中对应行的列值。

  1. 最后,查看新列的结果:
代码语言:txt
复制
print(df1)

完整的代码如下:

代码语言:txt
复制
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
df2 = pd.DataFrame({'D': [10, 11, 12], 'E': [13, 14, 15], 'F': [16, 17, 18]})

df1['New Column'] = df1.apply(lambda row: row['A'] * df2.loc[row.name, 'D'] + row['B'] * df2.loc[row.name, 'E'] + row['C'] * df2.loc[row.name, 'F'], axis=1)

print(df1)

这样,每一行的值与另一个dataframe的对应列相乘,并将所有行的总和作为新列添加到原始dataframe中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Python 数据处理 合并二维数组和 DataFrame 中特定列的值

    pandas.core.frame.DataFrame; 生成一个随机数数组; 将这个随机数数组与 DataFrame 中的数据列合并成一个新的 NumPy 数组。...然后使用 pd.DataFrame (data) 将这个字典转换成了 DataFrame df。在这个 DataFrame 中,“label” 作为列名,列表中的元素作为数据填充到这一列中。...arr = np.concatenate((random_array, values_array), axis=1) 最后一行代码使用 numpy 库中的 concatenate () 函数将前面得到的两个数组沿着第二轴...结果是一个新的 NumPy 数组 arr,它将原始 DataFrame 中 “label” 列的值作为最后一列附加到了随机数数组之后。...运行结果如下: 总结来说,这段代码通过合并随机数数组和 DataFrame 中特定列的值,展示了如何在 Python 中使用 numpy 和 pandas 进行基本的数据处理和数组操作。

    15700

    手把手教你做一个“渣”数据师,用Python代替老情人Excel

    请按照以下链接下载数据,并将其放在与存储Python文件的同一文件夹中。...可以用工作表的名字,或一个整数值来当作工作表的index。 ? 4、使用工作表中的列作为索引 除非明确提到,否则索引列会添加到DataFrame中,默认情况下从0开始。...5、略过行和列 默认的read_excel参数假定第一行是列表名称,会自动合并为DataFrame中的列标签。...Python提供了许多不同的方法来对DataFrame进行分割,我们将使用它们中的几个来了解它是如何工作的。...4、将总列添加到已存在的数据集 ? 5、特定列的总和,使用loc函数 ? 或者,我们可以用以下方法: ? 6、用drop函数删除行 ? 7、计算每列的总和 ?

    8.4K30

    整理了25个Pandas实用技巧(下)

    为了找出每一列中有多少值是缺失的,你可以使用isna()函数,然后再使用sum(): isna()会产生一个由True和False组成的DataFrame,sum()会将所有的True值转换为1,False...我们将会使用str.split()函数,告诉它以空格进行分隔,并将结果扩展成一个DataFrame: 这三列实际上可以通过一行代码保存至原来的DataFrame: 如果我们想要划分一个字符串,但是仅保留其中一个结果列呢...比如说,让我们以", "来划分location这一列: 如果我们只想保留第0列作为city name,我们仅需要选择那一列并保存至DataFrame: Series扩展成DataFrame 让我们创建一个新的示例...DataFrame: 这里有两列,第二列包含了Python中的由整数元素组成的列表。...: In [91]: orders['total_price'] = total_price orders.head(10) Out[91]: 你可以看到,每个订单的总价格在每一行中显示出来了。

    2.4K10

    整理了 25 个 Pandas 实用技巧,拿走不谢!

    最后,你可以通过apply()函数一次性对整个DataFrame使用这个函数: ? 仅需一行代码就完成了我们的目标,因为现在所有的数据类型都转换成float: ? 8....我们可以使用sample()函数来随机选取75%的行,并将它们赋值给"movies_1"DataFrame: ?...我们将会使用str.split()函数,告诉它以空格进行分隔,并将结果扩展成一个DataFrame: ? 这三列实际上可以通过一行代码保存至原来的DataFrame: ?...将一个由列表组成的Series扩展成DataFrame 让我们创建一个新的示例DataFrame: ? 这里有两列,第二列包含了Python中的由整数元素组成的列表。...你可以看到,每个订单的总价格在每一行中显示出来了。 这样我们就能方便地甲酸每个订单的价格占该订单的总价格的百分比: ? 20. 选取行和列的切片 让我们看一眼另一个数据集: ?

    3.2K10

    Pandas 25 式

    一行代码就可以解决这个问题,现在所有列的值都转成 float 了。 ? 8....用多个文件建立 DataFrame ~ 按列 上个技巧按行合并数据集,但是如果多个文件包含不同的列,该怎么办? 本例将 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 列。 ?...用 dropna() 删除列里的所有缺失值。 ? 只想删除列中缺失值高于 10% 的缺失值,可以设置 dropna() 里的阈值,即 threshold. ? 16....接下来,为 DataFrame 新增一列,total_price。 ? 如上所示,每一行都列出了对应的订单总价。 这样一来,计算每行产品占订单总价的百分比就易如反掌了。 ? 20....年龄列有 1 位小数,票价列有 4 位小数,如何将这两列显示的小数位数标准化? 用以下代码让这两列只显示 2 位小数。 ? 第一个参数是要设置的选项名称,第二个参数是 Python 的字符串格式。

    8.4K00

    数据分析篇 | PyCon 大咖亲传 pandas 25 式,长文建议收藏

    一行代码就可以解决这个问题,现在所有列的值都转成 float 了。 ? 8....用多个文件建立 DataFrame ~ 按列 上个技巧按行合并数据集,但是如果多个文件包含不同的列,该怎么办? 本例将 drinks 数据集分为了两个 CSV 文件,每个文件都包含 3 列。 ?...用 dropna() 删除列里的所有缺失值。 ? 只想删除列中缺失值高于 10% 的缺失值,可以设置 dropna() 里的阈值,即 threshold. ? 16....接下来,为 DataFrame 新增一列,total_price。 ? 如上所示,每一行都列出了对应的订单总价。 这样一来,计算每行产品占订单总价的百分比就易如反掌了。 ? 20....年龄列有 1 位小数,票价列有 4 位小数,如何将这两列显示的小数位数标准化? 用以下代码让这两列只显示 2 位小数。 ? 第一个参数是要设置的选项名称,第二个参数是 Python 的字符串格式。

    7.2K20

    在 Python 中,通过列表字典创建 DataFrame 时,若字典的 key 的顺序不一样以及部分字典缺失某些键,pandas 将如何处理?

    DataFrame 是 pandas 库中的一种二维标签数据结构,类似于 Excel 表格或 SQL 表,其中可以存储不同类型的列。这种数据结构非常适合于处理真实世界中常见的异质型数据。...当通过列表字典来创建 DataFrame 时,每个字典通常代表一行数据,字典的键(key)对应列名,而值(value)对应该行该列下的数据。如果每个字典中键的顺序不同,pandas 将如何处理呢?...列顺序:在创建 DataFrame 时,pandas 会检查所有字典中出现的键,并根据这些键首次出现的顺序来确定列的顺序。...下面是对每一行代码的解释: import pandas as pd:这行代码导入了 pandas 库,并将其重命名为 pd。...dtype 参数指定了新 DataFrame 中的数据类型,这里设置为 np.float64,即双精度浮点数。 df:这行代码输出 DataFrame,以便查看其内容。

    13500

    Python 金融编程第二版(二)

    ② 选择第一行。 ③ 选择第一行的第三个元素;在括号内,索引由逗号分隔。 ④ 选择第二列。 ⑤ 计算所有值的总和。 ⑥ 沿第一个轴计算总和,即按列计算。 ⑦ 沿第二轴计算总和,即按行计算。...因此,NumPy提供了允许每列具有不同dtype的结构化或记录ndarray对象。什么是“每列”?...③ 计算每列的总和(“少”)。 我们可以总结性能结果如下: 当计算所有元素的总和时,内存布局实际上并不重要。...② 给出组中的行数。 ③ 给出每列的均值。 ④ 给出每列的最大值。 ⑤ 给出每列的最小值和最大值。 也可以通过多个列进行分组。...② 所有x列的值为正且y列的值为负的行。 ③ 所有列中 x 的值为正或列中 y 的值为负的所有行(这里通过各自的属性访问列)。 比较运算符也可以一次应用于完整的 DataFrame 对象。

    20110

    如何用 Python 执行常见的 Excel 和 SQL 任务

    每个括号内的列表都代表了我们 dataframe 中的一行,每列都以 key 表示:我们正在处理一个国家的排名,人均 GDP(以美元表示)及其名称(用「国家」)。...使用一行代码,我们已经将这些数据分配并保存到 Pandas dataframe 中 - 事实证明是这种情况,字典是要转换为 dataframe 的完美数据格式。 ?...我们为一个新的 dataframe 分配一个布尔索引的过滤器,这个方法基本上就是说「创建一个人均 GDP 超过 50000 的新 dataframe」。现在我们可以显示gdp50000。 ?...有12个国家的 GDP 超过 50000! 选择属于以 s 开头的国家的行。 现在可以显示一个新 dataframe,其中只包含以 s 开头的国家。...事实上,你将要重复我们所有的计算,包括反映每个国家的人口列的方法!看看你是否可以在刚刚启动的 Python notebook 中执行此操作。

    10.8K60

    用Python执行SQL、Excel常见任务?10个方法全搞定!

    每个括号内的列表都代表了我们 dataframe 中的一行,每列都以 key 表示:我们正在处理一个国家的排名,人均 GDP(以美元表示)及其名称(用「国家」)。...使用一行代码,我们已经将这些数据分配并保存到 Pandas dataframe 中 —— 事实证明是这种情况,字典是要转换为 dataframe 的完美数据格式。 ?...我们为一个新的 dataframe 分配一个布尔索引的过滤器,这个方法基本上就是说「创建一个人均 GDP 超过 50000 的新 dataframe」。现在我们可以显示gdp50000。 ?...有12个国家的 GDP 超过 50000! 选择属于以 s 开头的国家的行。 现在可以显示一个新 dataframe,其中只包含以 s 开头的国家。...事实上,你将要重复我们所有的计算,包括反映每个国家的人口列的方法!看看你是否可以在刚刚启动的 Python notebook 中执行此操作。

    8.3K20

    Python数据分析笔记——Numpy、Pandas库

    2、DataFrame (1)概念: DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。...DataFrame既有行索引也有列索引,其中的数据是以一个或多个二维块存放的,而不是列表、字典或别的一维数据结构。...(3)获取DataFrame的值(行或列) 通过查找columns值获取对应的列。(下面两种方法) 通过索引字段ix查找相应的行。 (4)对列进行赋值处理。 对某一列可以赋一个标量值也可以是一组值。...(2)DataFrame与Series之间的运算 将DataFrame的每一行与Series分别进行运算。...传入how=‘all’将只滤出全是缺失值的那一行。 要用这种方式滤出列,只需传入axis=1即可。

    6.4K80

    利用NumPy和Pandas进行机器学习数据处理与分析

    而Pandas作为Python中最受欢迎的数据处理库之一,提供了丰富的工具和灵活的语法,使得数据清洗、转换和探索变得简单高效。...它类似于Python中的列表或数组,但提供了更多的功能和灵活性。我们可以使用Series来存储和操作单个列的数据。...DataFrame是pandas中的二维表格数据结构,类似于Excel中的工作表或数据库中的表。它由行和列组成,每列可以有不同的数据类型。...例如,要访问DataFrame中的一列数据,可以使用列名:# 访问列print(df['Name'])运行结果如下要访问DataFrame中的一行数据,可以使用iloc和loc方法:# 访问行print...例如,要添加一列数据,可以将一个新的Series赋值给DataFrame的一个新列名# 添加列df['Gender'] = ['Male', 'Female', 'Male', 'Female']print

    27820

    Python中 Pandas 50题冲关

    (data, index=labels) df 显示df的基础信息,包括行的数量;列名;每一列值的数量、类型 df.info() # 方法二 # df.describe() 展示df的前3行 df.iloc...[df['age'].between(2, 4)] f行的age改为1.5 df.loc['f', 'age'] = 1.5 计算visits的总和 df['visits'].sum() 计算每个不同种类...animal的age的平均数 df.groupby('animal')['age'].mean() 在df中插入新行k,然后删除该行 #插入 df.loc['k'] = [5.5, 'dog', 'no...'] = df['animal'].replace('snake', 'python') df 对每种animal的每种不同数量visits,计算平均age,即,返回一个表格,行是aniaml种类,列是...Air France', '"Swiss Air"']}) df FlightNumber列中有些值缺失了,他们本来应该是每一行增加10,填充缺失的数值,并且令数据类型为整数 df['FlightNumber

    4.2K30

    Pandas 50题练习

    (data, index=labels) df 显示df的基础信息,包括行的数量;列名;每一列值的数量、类型 df.info() # 方法二 # df.describe() 展示df的前3行 df.iloc...[df['age'].between(2, 4)] f行的age改为1.5 df.loc['f', 'age'] = 1.5 计算visits的总和 df['visits'].sum() 计算每个不同种类...animal的age的平均数 df.groupby('animal')['age'].mean() 在df中插入新行k,然后删除该行 #插入 df.loc['k'] = [5.5, 'dog', 'no...'] = df['animal'].replace('snake', 'python') df 对每种animal的每种不同数量visits,计算平均age,即,返回一个表格,行是aniaml种类,列是...Air France', '"Swiss Air"']}) df FlightNumber列中有些值缺失了,他们本来应该是每一行增加10,填充缺失的数值,并且令数据类型为整数 df['FlightNumber

    3K20

    快速介绍Python数据分析库pandas的基础知识和代码示例

    df.tail(3) # Last 3 rows of the DataFrame ? 添加或插入行 要向DataFrame追加或添加一行,我们将新行创建为Series并使用append()方法。...在本例中,将新行初始化为python字典,并使用append()方法将该行追加到DataFrame。...我们将调用pivot_table()函数并设置以下参数: index设置为 'Sex',因为这是来自df的列,我们希望在每一行中出现一个唯一的值 values值为'Physics','Chemistry...使用max()查找每一行和每列的最大值 # Get a series containing maximum value of each row max_row = df.max(axis=1) ?...类似地,我们可以使用df.min()来查找每一行或每列的最小值。 其他有用的统计功能: sum():返回所请求的轴的值的总和。默认情况下,axis是索引(axis=0)。

    8.1K20

    50道练习实践学习Pandas!

    (data, index=labels) df 7.显示DataFrame的基础信息,包括行的数量;列名;每一列值的数量、类型 df.info() # 方法二 # df.describe() 8.展示...df['visits'].sum() 16.计算每个不同种类animal的age的平均数 df.groupby('animal')['age'].mean() 17.在df中插入新行k,然后删除该行...snake替换为python df['animal'] = df['animal'].replace('snake', 'python') df 22.对每种animal的每种不同数量visits,计算平均...,有列A, B,A的值在1-100(含),对A列每10步长,求对应的B的和 df = pd.DataFrame({'A': [1,2,11,11,33,34,35,40,79,99],...Air France', '"Swiss Air"']}) df 37.FlightNumber列中有些值缺失了,他们本来应该是每一行增加10,填充缺失的数值,并且令数据类型为整数 df['FlightNumber

    3.8K10
    领券