我想过滤一个pandas dataframe并以递归的方式添加一些数据。
数据框显示“级别”中的层次结构。级别1是父级别,2到n是级别1的子级别。
的数据
我尝试做的是过滤[Status]中所有带有'E'或'V'的行。
data = {
"Level": [1, 2, 2, 2, 3, 2, 3, 3, 4],
"Status": ["-", "-", "E", "-", "-", "V", "-", "-", "-"],
"Item": ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9"]
}
# Load data into a DataFrame object:
df = pd.DataFrame(data)
# Create a new DataFrame by filtering rows with Status "E" or "V"
filtered_df = df.loc[df['Status'].isin(['E', 'V'])].copy()
字符串
然后我想添加每个子级的父级,以便只显示行0、2、3、4、5。
的
有人能帮帮我吗?
最好的问候,迈克
2条答案
按热度按时间e4yzc0pl1#
IIUC,你不需要递归,你可以简单地以相反的顺序迭代,跟踪最后符合你的条件的级别:
字符串
reset_index
,则假设唯一索引。输出量:
型
变量也可以获取匹配的子级:
型
输出量:
型
lx0bsm1f2#
作品完美,非常感谢!