Python将数据帧传递给其他函数

2024-09-29 23:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑-我找到了一种方法来使用数据帧.描述()-我在下面附上了更正的版本-这样“DataExtract”只运行一次,然后返回数据帧以用于回归或散点图函数。在

import pandas as pd


# Extracting the data - Real query would be extracting X and Y from a SQL query and converting to a pandas frame
def DataExtract(Y, X):
    d = {Y: [1, 3, 3, 9, 5],
         X: [6, 7, 8, 9, 10]}
    df = pd.DataFrame(d)
    df = df.copy(deep=True)
    return df


# Build process using the data extracted in DataExtract
def Regression(df):
    from statsmodels.formula.api import ols
    df.describe()
    df.columns = ['Y', 'X']
    model = ols("Y ~ X", df).fit()
    print(model.summary())


# Plot a graph for a given dataframe
def ScatterPlot(df):
    import matplotlib.pyplot as plt
    df.describe()
    df.columns = ['Y', 'X']
    df.plot.scatter(x='X', y='Y')
    plt.show()

dataset = DataExtract("a","b")
Regression(DataSet)

在-- 我已经开始开发一些分析功能,并在初学者水平上使用Python,这主要归功于这个网站

我在下面附上了一个简化的例子,说明了我目前如何编译我的函数,这些函数随后被GUI调用,这里我们有一个“DataExtract”函数,它生成一个帧,然后根据用户对数据的处理方式来“回归”或“散点图”。在

然后,用户将调用“CombinedRegression”或“CombinedScatterPlot”来生成输出

^{pr2}$

这个构建并不是很有效,因为我必须调用“组合”函数才能得到一个最终迫使我每次都生成“DataExtract”函数的输出,即使它是用于回归和散点图函数的相同数据。GUI将根据单击的按钮向其中一个函数发出a和b插槽

最终,我想做的是1)用参数a和b提取数据,2)使用回归图或散点图中的框架,或者同时使用用户给出的命令。在

非常感谢你的帮助


Tags: andthe数据函数用户fromimportpandas
2条回答

一种方法是传递数据帧X和数据帧{}。在

import pandas as pd

#Extracting the data - Real query would be extracting X and Y from a SQL query and converting to a pandas frame
def DataExtract(Y, X):
    d = {Y : [1, 3, 3, 9, 5],
             X : [6, 7, 8, 9, 10]}
    return df_X, df_Y

#Build process using the data extracted in DataExtract
def Regression(X, Y):
   from statsmodels.formula.api import ols
   model = ols("Y ~ X", df).fit()
   print(model.summary())

#Plot a graph for a given dataframe
def ScatterPlot(X, Y):
    import matplotlib.pyplot as plt
    plt.scatter(x=X, y=Y)
    plt.show()

if __name__ == '__main__':
    X, Y = DataExtract()
    Regression(X, Y)
    Scatterplot(X, Y)

您真正需要做的就是用需要传递的X,Y参数调用要运行的main函数。然后,在这些函数中,将它传递给DataExtract函数,该函数将创建并返回数据帧,然后从那里继续。在

import pandas as pd

#Extracting the data - Real query would be extracting X and Y from a SQL query and converting to a pandas frame 
def DataExtract(Y, X): 
    d = {Y : [1, 3, 3, 9, 5], X : [6, 7, 8, 9, 10]} 
    df = pd.DataFrame(d)
    return df 

#Build process using the data extracted in DataExtract 
def Regression(X, Y):
    from statsmodels.formula.api import ols
    df = DataExtract(X, Y) 
    df.columns = ['Y','X']
    model = ols("Y ~ X", df).fit()
    print(model.summary()) 

#Plot a graph for a given dataframe 
def ScatterPlot(X, Y): 
    import matplotlib.pyplot as plt
    df = DataExtract(X, Y)
    df.columns = ['Y', 'X']
    df.plot.scatter(x='X', y='Y')
    plt.show()

…如果用户想同时做这两件事,你可以这样做:

^{pr2}$

相关问题 更多 >

    热门问题