在数据帧的for循环中使用数组值

时间:2017-12-23 17:32:46

标签: python dataframe

我有一个数据框,其中一列代表客户名称。我用客户名做了一个ndarray,我试着写一个循环

for i in customer.values:
     print df[df[cust_name == i]]

但它给我一个错误,说长度应该是相同的。如果我获取一个字符串值并将其分配给i以获得一个特定值,则它可以完美地运行。

我也尝试将I类型更改为字符串,但是我遇到了同样的问题。 关于我做错了什么的指示?

1 个答案:

答案 0 :(得分:0)

现在这听起来很愚蠢,但我现在宁愿这样做。 @COLDSPEED感谢你花时间在这上面,并抱歉没有提出正确的问题。

但这是我发现的错误。我通过执行内部联接创建了一个数据框,并将其命名为old_cust

old_cust = pd.merge(old_cust,major_account_cust_2016,how =' inner',on =' Customer')

然后我正在使用for循环 对于我在old_cust.values:它给了我值错误

我刚才意识到print(type(old_cust.values))给了我一个班级&nbspy.ndarray'

但是,我应该使用print(类型(old_cust.iloc [i] [' Customer'])),因为它给了我课程' str'我正在使用

表示我在范围内(len(old_cust)):     打印(pricing_data [pricing_data ['本地客户等级'] == old_cust.iloc [i] ['客户']])

现在它有效。再次对此感到抱歉,并感谢你花时间在这上面。