Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与def main()混淆_Python_Pandas_Function - Fatal编程技术网

Python 与def main()混淆

Python 与def main()混淆,python,pandas,function,Python,Pandas,Function,我对Python比较陌生,所以我不确定如何处理这个问题。我不希望您展示代码,只是想了解更多关于Python最佳实践的信息。我一直在努力学习教程,但仍然有点困惑 比如说,我在一个文件夹中收集了一组.csv文件;在下面的路径中说:(“D:/Files/”)。所有的.csv文件只有两列:“A”和“B”。我想使用以下标准创建两个新列:将列“A”中的每一行乘以2,将列“B”中的每一行乘以5。然后我想创建第三行,它显示我创建的这两个新行的总和。最终输出是保存到新的.csv文件中的数据帧,其中包含最后一列(和

我对Python比较陌生,所以我不确定如何处理这个问题。我不希望您展示代码,只是想了解更多关于Python最佳实践的信息。我一直在努力学习教程,但仍然有点困惑

比如说,我在一个文件夹中收集了一组.csv文件;在下面的路径中说:(“D:/Files/”)。所有的.csv文件只有两列:“A”和“B”。我想使用以下标准创建两个新列:将列“A”中的每一行乘以2,将列“B”中的每一行乘以5。然后我想创建第三行,它显示我创建的这两个新行的总和。最终输出是保存到新的.csv文件中的数据帧,其中包含最后一列(和2个原始列)

我试图以这样的方式编写代码,以便将它导入到另一个脚本中的模块中,这样我就可以在文件夹中的多个文件上运行它。我将其编码如下:

import pandas as pd

def multiply_by_3(df):
    A = df['A']
    new_column_1 = [elem*2 for elem in A]
    return new_column_1

def multiply_by_5(df):
    B = df['B']
    new_column_2 = [elem*5 for elem in B]
    return new_column_2

def find_sum(new_column_1,new_column_2):
    C = [sum(x) for x in zip(new_column_1, new_column_2)]
    return C

##Attempt at main function
def main():
    new_column_1    = multiply_by_3()
    new_column_2    = multiply_by_5()
    sum_of_new_cols = find_sum(new_column_1,new_column_2)



这是我迷路的地方:

  • 如何将新列添加到数据帧?当我向脚本中添加df['new_column']=sum_of_new_cols]时,它不会编译,因为没有定义df

  • 我不知道如何处理最后一个“main”函数,以便将其保存为一个模块,并在单独的脚本中调用,从而允许我一次性将这些函数应用于多个文件

  • 我可以将其他脚本作为模块导入,并在模块内使用特定函数(例如,乘以5),但在有“main”函数的情况下,如何运行整个脚本(即所有函数)?我链接到的教程说,使用“main”函数的好处在于它运行之前的所有函数


  • 我意识到这可能是一个非常愚蠢的问题,希望您提供相关资源的任何链接。

    您需要在
    main()
    中创建数据帧,然后在调用
    multiply\u by\u 3()
    multiply\u by\u 5()时将其作为参数传递
    。您编写的代码甚至不应该运行,因为您也没有为这些函数提供参数。从CSV文件创建
    df
    的代码在哪里?@Barmar更有意义-代码不是以当前格式运行的。其想法是能够将此脚本导入模块,并在第二个脚本中从多个文件导入数据帧(使用pd.read\u csv)。这是否意味着我必须在第二个脚本中创建“main”函数?是的,您应该在这里定义一个不同的函数,它应该将
    df
    作为参数,并从另一个脚本中的main函数调用它。