首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数给出列表,我需要DataFrame这样我才能连接

函数给出列表,我需要DataFrame这样我才能连接
EN

Stack Overflow用户
提问于 2018-01-20 04:08:01
回答 1查看 47关注 0票数 0

我开始提取文件夹中的所有文件,并将它们连接在一起,下面这个方法有效:

代码语言:javascript
复制
warranty_list = []
warranty_files = glob.glob(os.path.join(qms, '*.csv'))
for file_ in warranty_files:
df = pd.read_csv(file_,index_col=None, header=0)
warranty_list.append(df)
warranty = pd.concat(warranty_list)

然后我不得不写一个函数,这样我就只能抓取某些文件并将它们连接在一起,但这个函数不起作用。我没有得到一个错误,但是最后一行没有被使用,所以我没有连接文件。

代码语言:javascript
复制
def get_warranty(years=5):
    warranty_list = [] #list for glob.glob()
    current_year = datetime.datetime.today().year #current year
    last_n_years = [str(current_year-i) for i in range(0,years+1)]
    for year in last_n_years:
        warranty = glob.glob(os.path.join(qms, "Warranty Detail%s.csv" % year)) 
        if warranty:
            for file_ in warranty:
                df = pd.read_csv(file_,index_col=None, header=0)
                warranty_list.append(df)
            warranty_df = pd.concat(warranty_list)

最后一行不起作用可能是因为pd.concat()获得了一个列表作为输入,而它不会对此做任何事情。我不明白为什么它能在第一组代码中工作,而不是这一组。

我不知道如何更改函数以获得数据帧,也不知道如何将末尾获得的内容更改为数据帧。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-20 04:33:10

我建议直接使用append,因为它和concat做同样的事情

所以基本上你从一个空的数据帧开始

代码语言:javascript
复制
warranty_df = pd.Dataframe()

然后在读取文件时将其他数据帧附加到该文件

因此,您的函数应该保持不变,但需要删除以下行

代码语言:javascript
复制
warranty_df = pd.concat(warranty_list)

在循环之后,您将返回warranty_df!

代码语言:javascript
复制
def get_warranty(years=5):
    warranty_df = pd.Dataframe()
    current_year = datetime.datetime.today().year #current year
    last_n_years = [str(current_year-i) for i in range(0,years+1)]
    for year in last_n_years:
        warranty = glob.glob(os.path.join(qms, "Warranty Detail%s.csv" % year))
        if warranty:
            for file_ in warranty:
                df = pd.read_csv(file_,index_col=None, header=0)
                waranty_df = warranty_df.append(df)

    return warranty_df
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48348745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档