处理来自不同函数的多个返回数据集 python pandas
Posted
技术标签:
【中文标题】处理来自不同函数的多个返回数据集 python pandas【英文标题】:Working with multiple return datasets from different functions python pandas 【发布时间】:2017-05-11 19:14:13 【问题描述】:我正在处理 3 个数据集,我编写了 3 个不同的函数,每个数据集 1 个用于进行一些数据清理和操作。最后,我想将所有 3 个已清理的数据集组合到另一个函数中。
我的逻辑:
import pandas as pd
def function1():
read in data as df
df[(df.column1 != "")&(df.column2 != 'MRN')&(df.column3 != "C") ]
return data1.to_csv()
def function2():
read in data as df
df[(df.column1 != "A")&(df.column2 != 'M')&(df.column3 != " ") ]
return data2.to_csv()
def function3():
read in data as df
df[(df.column1 != "B")&(df.column2 != 'N')&(df.column3 != " ") ]
return data3.to_csv()
def combinedatasets():
merge (data1, data2, data3)
return combineddata.to_csv()
现在我将 data1、data2 和 data3 作为目录中的新文件输出。无论如何将它们临时存储在脚本中,这样这3个文件就不会被输出,而只会输出combineddate.csv? 如何从我的 combinedatasets 函数中的前 3 个函数中调用这些临时数据集 data1、data2、data3 来组合它们?
类似:
import pandas as pd
def function1():
read in data as df
df[(df.column1 != "")&(df.column2 != 'MRN')&(df.column3 != "C") ]
return temporary data1 without outputting it
def function2():
read in data as df
df[(df.column1 != "A")&(df.column2 != 'M')&(df.column3 != " ") ]
return temporary data2 without outputting it
def function3():
read in data as df
df[(df.column1 != "B")&(df.column2 != 'N')&(df.column3 != " ") ]
return temporary data3 without outputting it
def combinedatasets():
calling temporary data1,2,3 and
merge (data1, data2, data3)
return pd.to_csv('combineddata.csv') #output as a csv file
所以只有“combineddata.csv”会输出到文件夹。
【问题讨论】:
你所说的结合是什么意思?附加它们,合并它们,还是其他?您也可以不显示伪代码,因为很难看到您的问题,因为read_csv
不是任何其他对象的方法,除了一般的pandas
方法。你的意思是to_csv
?
是的,我正在使用 pandas,让我编辑
【参考方案1】:
只需将一个对象分配给函数调用,因为函数返回一个数据框:
def myfunction():
data = pd.read_csv('Input.csv')
# process dataframe...
return data
def combinedatasets():
df = myfunction()
或同时分配:
def combinedatasets():
data1, data2, data3 = function1(), function2(), function3()
但是,请避免在您的环境中使用多个结构相似的数据框,并将数据框保存到一个列表中,然后您可以将其合并或附加在一起:
def combinedatasets():
dfList = [function1(), function2(), function3()]
# MERGE/COLUMN BIND
combinedf = pd.concat(dfList, axis=1, join_axes=[dfList[0].index])
combinedf.to_csv('CombinedWideData.csv')
# APPEND/ROW BIND
combinedf = pd.concat(dfList)
combinedf.to_csv('CombinedLongData.csv')
【讨论】:
以上是关于处理来自不同函数的多个返回数据集 python pandas的主要内容,如果未能解决你的问题,请参考以下文章