我有一个熊猫数据框架,看起来像这样在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