你好,我想通过一个函数来增加一个全局变量'count‘,这个函数将在长度为1458的熊猫数据中被调用。
我已经读到了其他的答案,他们谈论.apply()不在的地方。因此,我遵从他们的建议,但计数变量仍然是4。
count = 0
def cc(x):
global count
count += 1
print(count)
#Expected final value of count is 1458 but instead it is 4
# I think its 4, because 'PoolQC' is a categorical column with 4 possible values
# I want the count variable to be 1458 by the end instead it shows 4
all_data['tempo'] = all_data['PoolQC'].apply(cc)
# prints 4 instead of 1458
print("Count final value is ",count)发布于 2018-10-19 08:21:41
是的,观察到的效果是因为您有列的分类类型。这是聪明的熊猫,它只是计算申请每一个类别。你在那做的只是数数吗?我想不是,但你为什么需要这样的计算呢?你不能用df.shape吗?
我在这里看到了几种选择:
all_data['tempo'] = all_data['PoolQC'].astype(str).apply(cc)
df.shape查看df中有多少行。all_data['tempo'] = df.apply(cc, axis=1)。在这种情况下,您仍然可以在cc函数中使用all_data‘’PoolQC‘中的任何内容,例如:def cc(x): global count count += 1 print(count) return x['PoolQC']
https://stackoverflow.com/questions/52879733
复制相似问题