【发布时间】:2018-07-27 08:42:09
【问题描述】:
我在 Python 上使用简单的函数:
def liste_bis(data):
Country_Name = []
Platform_Category = []
Platform = []
Country_Acronym = []
for m,n in enumerate (np.arange(np.shape(data)[0])):
if (data["domain1"][m]=='afe'):
Country_Name.append('France')
Platform_Category.append('App')
Platform.append('BDDF-HB App')
Country_Acronym.append('FR')
elif (data["domain1"][m]=='afer'):
Country_Name.append('France')
Platform_Category.append('Site')
Platform.append('BDDF-HB Site')
Country_Acronym.append('FR')
elif (data["domain1"][m]=='afert'):
Country_Name.append('France')
Platform_Category.append('App')
Platform.append('BDDF-BNP App')
Country_Acronym.append('FR')
elif (data["domain1"][m]=='aferty'):
Country_Name.append('France')
Platform_Category.append('Site')
Platform.append('BDDF-BNP Site')
Country_Acronym.append('FR')
elif (data["domain1"][m]=='afertyu'):
Country_Name.append('Luxembourg')
Platform_Category.append('App')
Platform.append('BGL-BNP App')
Country_Acronym.append('LU')
dictionnaire = {"Country_Name":Country_Name,"Platform_Category":Platform_Category,"Platform":Platform,"Country_Acronym":Country_Acronym}
return(dictionnaire)
但是我有一些麻烦。 当我执行程序时,它会返回我:
'The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().'
但是当我将这个函数与只有 1 行的 DataFrame 一起使用时,它可以正常工作。 但是当我有超过 1 行时,它不起作用......
让您展示我使用的数据框示例: dataframe_example
你能帮帮我吗?
谢谢
【问题讨论】:
-
当
data["domain1"][m]有多个元素时,您希望data["domain1"][m]=='afe'表现如何。是否应该只在data["domain1"][m]中的所有元素都满足条件时才输入if? -
你的代码缩进不好,这在 Python 中很关键。此外,它并不完整,因为您没有显示该函数的调用方式、参数值的定义,甚至 numpy 的导入。请阅读并关注How to create a Minimal, Complete, and Verifiable example。
-
@FlyingTeller data["domain1"][m] 中只有 1 个元素
-
您能否添加数据示例和所需输出?
-
@zipa 好的,我完成了