请帮助我了解如何解决这个问题,我是 Python 初学者。
我有一个特定的任务,我必须从 Excel 文件 (.xlsx) 导入数据并获取“计数”列以在 Python 中执行标准化。
然后在 Numpy 库下定义一个 Python 函数来执行此操作 normalization operation (或将来的任何操作)并将输出(标准化结果)打印到同一 Excel 工作簿中的新工作表
是否可以严格使用 numpy 来完成此任务?*
[ Excel 中使用的公式 -> ( =(A2-MIN($A$2:$A$11))/(MAX($A$2:$A$11)-MIN($A$2:$A$11)) *10 ) 将使用 numpy 翻译为 python 中的函数}
向我提供的说明如下:
import numpy as nd
def normalize (x):
""" This function has the logic for normalization
Inputs
------
x: input count
Returns
------
the transformed f(x)
"""
return x
示例数据:
这是我到目前为止编写的代码:-
import pandas as pd
import numpy as np
data = pd.read_excel(r"path of file") #import or read excel file
data = data['Count'] #to convert the column into dataframe
data2 = data.to_numpy() #to convert dataframe into numpy array
print(data2)
def normalize(data2):
return ((data2 - min(data2))/(max(data2)-min(data2)))*10
print(normalize(data2))
但是这段代码似乎并不完全符合提供的说明
最佳答案
我假设您的 Excel 文件是 csv 格式,如果不是,您可以打开并保存为 csv 格式的文件。
import numpy as np
#Opening data just with numpy lib
from numpy import genfromtxt
data = genfromtxt('Sample data.csv', delimiter=';')
#Defining normalize function
def normalize(x,MA,MI):
return ((x - MI)/(MA-MI))*10
#Cleaning ignored values
data2 = np.delete(data, 1, axis=1) #Constant
data3 = np.delete(data2, 0, axis=0) #Column Names
#Precalculating Min and Max
MI=np.amin(data3)
MA=np.amax(data3)
#Applying function to the array
data4=np.apply_along_axis(normalize,1,data3,MA,MI)
print(data4)
输出数组:
[[ 0. ]
[ 1.11111111]
[ 2.22222222]
[ 3.33333333]
[ 4.44444444]
[ 5.55555556]
[ 6.66666667]
[ 7.77777778]
[ 8.88888889]
[10. ]]
关于python - 使用 Python 如何从 Excel 文件获取输入、定义函数并在该 Excel 文件的新工作表中生成输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68409093/