首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pandas将函数应用于列表中的多个数据帧

Pandas将函数应用于列表中的多个数据帧
EN

Stack Overflow用户
提问于 2018-05-28 07:42:54
回答 1查看 949关注 0票数 1

在数据帧列表上应用函数时,出现错误“字符串索引必须是整数,而不是字符串”

当在每个数据帧上单独应用该函数时,该函数运行良好。但是,当应用于数据帧列表时,会返回错误。

我的数据如下:

代码语言:javascript
复制
    data
     date center dt Cust Type
     2017-09-20 AA I
     2017-09-21 BB E
     2017-09-25 BB I
     2017-09-29 AA I

正在应用的函数:

代码语言:javascript
复制
def calc2(data):
    def naming(x_array):
        ww = ' '.join(str(n) for n in x_array)
        return(ww)
    dc = data['center'].unique()
    dt = data['dt'].unique()
    ct = data['Cust Type'].unique()
    key = [dc,dt,ct]
    key = map(naming,key)
    dc, dt, ct = key[0], key[1], key[2]
    date = data['date']
    print(dc,dt,ct,date)

   dfs = ['df1','df2','df3']
   map(calc2,dfs)

错误:

代码语言:javascript
复制
     ----> 6     dc = data['center'].unique()
           7     dt = data['dt'].unique()
           8     ct = data['Cust Type'].unique()

    TypeError: string indices must be integers, not str

而在单个数据集上运行良好:

代码语言:javascript
复制
    calc2(df1) -- works

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 08:28:53

您的list of dataframes实际上不是一个数据帧列表。实际上,它是一个字符串列表:

代码语言:javascript
复制
dfs = ['df1','df2','df3']

print(type(dfs[0])) # <class 'str'>

确保将数据帧列表分配给dfs。此外,我建议您使用函数返回值,而不是简单地使用print

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

https://stackoverflow.com/questions/50557484

复制
相关文章

相似问题

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