【发布时间】:2019-03-30 23:50:21
【问题描述】:
我有一个这样的数据框:
df = pd.DataFrame({'market':['ES','UK','DE'],
'provider':['A','B','C'],
'item':['X','Y','Z']})
然后我有一个提供者列表和以下循环:
providers_list = ['A','B','C']
for provider in providers_list:
a = df.loc[df['provider']==provider]
该循环为每个提供者创建一个数据框,稍后我将其放入 Excel 中。我想使用函数 apply 来提高速度。我已经将代码转换成这样:
providers_list = pd.DataFrame({'provider':['A','B','C']})
def report(provider):
a = df.loc[df['provider']==provider]
providers_list.apply(report)
文件 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\ops.py", 第 1190 行,在包装中 raise ValueError("只能比较同名的"
ValueError: ('只能比较标签相同的系列对象', '发生在索引提供者')
谢谢
【问题讨论】:
-
@roganjosh 目前没有更多的软件包。出于测试目的,我只是在创建数据框。
-
@roganjosh 你是绝对正确的。这就是为什么在回复您之前,我编辑了我的问题以包含完整的回溯,包括 pandas 和 swifter。给您带来的不便深表歉意和感谢。我还编辑了这个问题,避免更快,只坚持熊猫应用。