dataframe 增加一列(这一行1连续出现的次数)

dataframe 增加一列(这一行1连续出现的次数),第1张

def checknum(l,n=1):

#计算列表中连续=n的数目,返回最大连续数

res=[]

count=0

for i in l:

if i == n:

count+=1

else:

res.append(count)

count=0

res.append(count)

return max(res)

d=[

[1, 0, 0,1],

[1, 1, 1,1],

[1, 1, 0,0],

[1, 1, 1,1],

[0, 0, 0,1]

]

print [i+[checknum(i)] for i in d] #计算每行连续出现1的次数并加到行最后

输出结果>>>

[[1, 0, 0, 1, 1], [1, 1, 1, 1, 4], [1, 1, 0, 0, 2], [1, 1, 1, 1, 4], [0, 0, 0, 1, 1]]

当我们需要将dataframe中的某一列数据装换为其它类型或者做一些其它的算法后,再新增加到datafram中时,最有效的方法是使用自定义的udf函数。本文的例子是将id列的数据转换为double类型,然后将该列数据增加到dataframe中

引入需用的包,并新建DataFrame的例子:

使用pandas的insert方法,第一个参数指定入列的位置,第二个参数指定插入的列名,第三个参数指定插入列的数据。

直接对dataframe赋值

使用reindex函数,还可以指定缺失值填充的值,不过缺点是要把原有的列名和新列名都加上,如果列名较多,那就比较麻烦了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11919939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存