在数据帧列表上应用函数时,出现错误“字符串索引必须是整数,而不是字符串”
当在每个数据帧上单独应用该函数时,该函数运行良好。但是,当应用于数据帧列表时,会返回错误。
我的数据如下:
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
正在应用的函数:
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)
错误:
----> 6 dc = data['center'].unique()
7 dt = data['dt'].unique()
8 ct = data['Cust Type'].unique()
TypeError: string indices must be integers, not str
而在单个数据集上运行良好:
calc2(df1) -- works
我做错了什么?
发布于 2018-05-28 08:28:53
您的list of dataframes
实际上不是一个数据帧列表。实际上,它是一个字符串列表:
dfs = ['df1','df2','df3']
print(type(dfs[0])) # <class 'str'>
确保将数据帧列表分配给dfs
。此外,我建议您使用函数返回值,而不是简单地使用print
。
https://stackoverflow.com/questions/50557484
复制相似问题