创建包含列的多索引Dataframe



我有一个熊猫数据框架,看起来像这样在E中我有一个列表

(其中obj1 methoda obj3] (其中obj1, methoda)(其中obj1 methoda obj3]

您可以爆炸您的数据并重置索引以将其与移位的索引进行比较。此掩码允许您覆盖索引等于移位索引的a-d的所有值。下面的代码是这样做的:

import pandas as pd
df_exploded = df.explode(column="e").reset_index()
df_exploded.loc[df_exploded["index"] == df_exploded["index"].shift(), df.columns[:-1]] = ""
df_exploded = df_exploded.drop(columns="index")

结果如下表:

a  b  c  d    e
0   1  1  1  1   10
1                11
2                12
3   1  1  2  1  NaN
4   1  1  2  1    3
5   1  2  2  1   40
6                20
7   2  1  1  1  NaN
8   2  1  2  1   30
9                12
10               11

注意,如果你想要数值列,你也可以分配nan值而不是空字符串。要做到这一点,只需调整以下行:

df_exploded.loc[df_exploded["index"] == df_exploded["index"].shift(), df.columns[:-1]] = pd.NA # or np.nan if you want to use numpy

最新更新