Pandas中DataFrame ffill向下填充,学习笔记

注意:这篇文章纯粹是为了我自己看的,用来记笔记的。不用看

考虑一个DataFrame df:

col_name
0    Category1
1     item1()
2     item2()
3    Category2
4     item3()
5     item4()
6     item5()

需要转变为这样:

  col_name   category
1  item1()  Category1
2  item2()  Category1
4  item3()  Category2
5  item4()  Category2
6  item5()  Category2

解决:让我们执行startswith查找类别行并使用ffill创建另一个列

import pandas as pd
#创建上述 df
df = pd.DataFrame({'col_name':['Category1', 'item1()', 'item2()', 'Category2', 'item3()', 'item4()', 'item5()']})
#解决方案代码
df['category']=df.col_name.mask(df.col_name.str.endswith(')')).ffill()
df=df[df.category!=df.col_name]
#输出结果
print(df)

运行结果为:(正解)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43347550/article/details/105974692