正向填充移动极限
Foward filling moving limit
我有一个包含很多空白的数据框。图片上的第一个table。我想到达右边 table。我的想法是使用带有移动限制的 ffill()。该限制将根据右侧的内容进行调整。
因此,首先我们计算右侧的连续元素并填充 level2(黄色),然后对 level1(绿色)执行相同的操作。有可能吗?
假设空单元格是空字符串(""
),你可以试试:
df[df == ""] = np.nan
m = ~df["Level 1"].isna()
df.loc[m, "Level 2"] = ""
df.loc[m, "Level 3"] = ""
df.loc[:, ["Level 1", "Level 2"]] = df.loc[:, ["Level 1", "Level 2"]].ffill()
print(df.fillna(""))
打印:
Level 1 Level 2 Level 3
0 President
1 President Office
2 President Office Lucien
3 President Office Theresa
4 MEP
5 MEP Bureau
6 MEP Bureau Martin
7 MEP Bureau Juliette
8 MEP Bureau Romeo
9 Groups
10 Groups Comittee
11 Groups Comittee Paul
12 Groups Comittee Marc
13 Groups Sub Com
14 Groups Sub Com Julius
15 Groups Sub Com Marcus
16 Groups Sub Com Aurelius
我有一个包含很多空白的数据框。图片上的第一个table。我想到达右边 table。我的想法是使用带有移动限制的 ffill()。该限制将根据右侧的内容进行调整。 因此,首先我们计算右侧的连续元素并填充 level2(黄色),然后对 level1(绿色)执行相同的操作。有可能吗?
假设空单元格是空字符串(""
),你可以试试:
df[df == ""] = np.nan
m = ~df["Level 1"].isna()
df.loc[m, "Level 2"] = ""
df.loc[m, "Level 3"] = ""
df.loc[:, ["Level 1", "Level 2"]] = df.loc[:, ["Level 1", "Level 2"]].ffill()
print(df.fillna(""))
打印:
Level 1 Level 2 Level 3
0 President
1 President Office
2 President Office Lucien
3 President Office Theresa
4 MEP
5 MEP Bureau
6 MEP Bureau Martin
7 MEP Bureau Juliette
8 MEP Bureau Romeo
9 Groups
10 Groups Comittee
11 Groups Comittee Paul
12 Groups Comittee Marc
13 Groups Sub Com
14 Groups Sub Com Julius
15 Groups Sub Com Marcus
16 Groups Sub Com Aurelius