gpt4 book ai didi

python - 为 Pandas 中的所有列生成列矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:32 35 4
gpt4 key购买 nike

我有一个包含 6 列的数据框。生成执行以下操作的矩阵的最快方法是什么:

步骤 1) col1*col1a, col2*col2a, col3*col3a, col4*col4a

步骤 2 ) col_new = (col1*col1a)-col2*col2a)/(col1a-col2a)

使用 for 循环是其中一种选择 - 但有什么方法可以更快。

import pandas as pd
df=pd.DataFrame()
df['col1']=[100,200,300,400,500]
df['col1a']=[6,71,8,90,10]
df['col2']=[600,700,800,1900,100]
df['col2a']=[6,17,8,9,10]
df['col3']=[100,220,300,440,500]
df['col3a']=[1,22,3,44,5]

df[1x2]=(df['col1']*df['col1a']-df['col2']*df['col2a'])/(df['col1a']-df['col2a'])

我需要 1x3、1x4、1x5、2x3、2x4 等的列组合...

最佳答案

以下是我将如何处理它:

def new_col(df, col1, col2):
"""
Add a new column, modifying the dataframe inplace.

col1: int
column counter in the first column name
col2: int
column counter in the second column name
"""
nr = (
df.loc[:, f"col{col1}"] * df.loc[:, f"col{col1}a"]
- df.loc[:, f"col{col2}"] * df.loc[:, f"col{col2}a"]
)
dr = df.loc[:, f"col{col1}a"] - df.loc[:, f"col{col2}a"]

df.loc[:, f"col{col1}X{col2}"] = nr / dr

我将使用所需的列组合调用此函数。例如。

new_col(df, 1, 2)

输出:

enter image description here

调用从一个循环发出。

关于python - 为 Pandas 中的所有列生成列矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58144450/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com