首页 > 解决方案 > 我如何将这个 python 代码精确到几行?

问题描述

我想在我发现更新数据框的意思的地方精确说明这段代码。我如何找到模式并在几行中获取此代码。

import pandas as pd
import numpy as np

df = pd.read_csv('Dataset2.csv')
df = df.to_numpy()

for i in range (0,len(df)):

     mean_1 = df[i,1:5].sum() / 4
     mean_2 = (df[i,0:1].sum() + df[i,2:5].sum()) / 4 
     mean_3 = (df[i,0:2].sum() + df[i,3:5].sum()) / 4 
     mean_4 = (df[i,0:3].sum() + df[i,4:5].sum()) / 4
     mean_5 = df[i,0:4].sum() / 4
    
   
     df[i,0] = df[i,0] - mean_1
     df[i,1] = df[i,1] - mean_2
     df[i,2] = df[i,2] - mean_3
     df[i,3] = df[i,3] - mean_4
     df[i,4] = df[i,4] - mean_5
    

标签: pythonpandasnumpydata-analysis

解决方案


我对你想要做的事情的解释是

给定一个数据框 df,创建一个新的数据框,其中第 i 行第 j 列中元素的值由第 i 行中所有值的平均值给出 - 除了第 j 列中的值

如果这是正确的,那么以下将更快。它假定数据框仅包含此计算所需的列。如果有额外的列,您将需要使用索引调整解决方案

means = (df.sum(axis=1).reshape((len(df),1)) - df)/4

means将是一个 numpy 数组,因此如果您需要,请将其包装在 pandas Dataframe 中


推荐阅读