请求解释Pandas遍历DataFrame列代码中第5、6、8、9行逻辑
解释DataFrame列遍历代码中特定行的逻辑
先把完整代码贴出来方便对照:
# Iterate over the column in dataframe for entry in col: # If entry is in cols_count, add 1 if entry in cols_count.keys(): cols_count[entry] += 1 # Else add the entry to cols_count, set the value to 1 else: cols_count[entry] = 1 # Return the cols_count dictionary return cols_count
咱们逐个拆解你疑惑的行:
第5行
if entry in cols_count.keys():
这里是在检查当前从DataFrame列里拿到的单个值entry,是不是已经作为键存在于cols_count字典里了。cols_count.keys()会取出字典里所有已有的键,这行代码的作用就是判断这个值之前有没有被统计过。第6行
cols_count[entry] += 1:
要是第5行的判断结果为真(这个值之前已经被统计过),就把这个键对应的数值加1——说白了就是给这个值的出现次数再记一次。比如之前这个值已经出现了3次,执行完这行就变成4次啦。第8行
else::
这是和第5行的if配对的分支逻辑,意思是如果当前的entry不在cols_count的键列表里(也就是这个值是咱们第一次遍历到),就执行下面的代码块。第9行
cols_count[entry] = 1:
既然是第一次碰到这个值,那就在cols_count字典里新增一个以entry为名称的键,然后把它对应的值设为1——代表这个值目前已经出现了1次。
整体来说这段代码就是干一件事:遍历DataFrame的某一列,统计每个不同值的出现次数,最后把统计好的结果(一个字典)返回出去。
内容的提问来源于stack exchange,提问作者Luis
相关产品推荐
相关产品推荐

