Python 用零行填充DF的每个外部级别索引,以便所有这些外部索引具有相同的形状
假设我有以下格式的DF:Python 用零行填充DF的每个外部级别索引,以便所有这些外部索引具有相同的形状,python,pandas,Python,Pandas,假设我有以下格式的DF: col1 col2 idx1 idx2 A W 2 6 X 5 8 Y 7 6 Z 5 3 B X 2 1 Y 6 5 C W 3 4 X
col1 col2
idx1 idx2
A W 2 6
X 5 8
Y 7 6
Z 5 3
B X 2 1
Y 6 5
C W 3 4
X 9 4
Y 5 3
我想填充idx1的B和C,以便它们的行数与idx1的A相同:
col1 col2
idx1 idx2
A W 2 6
X 5 8
Y 7 6
Z 5 3
B X 2 1
Y 6 5
0 0 0
0 0 0
C W 3 4
X 9 4
Y 5 3
0 0 0
添加行的索引名并不重要
这就是我尝试过的:
blank = pd.DataFrame([0, 0]), index=df.columns).T
for ID in IDs:
for _ in range(maxLength - lengths[ID]):
df.loc[ID] = df.loc[ID].append(blank)
其中:
是一行零blank
是IDs
['A','B','C']
=4(df.loc['A']maxLength
是length
{'a':4,'B':2,'C':3}
这导致
df.loc['A']
保持原样,但df.loc['B']
和df.loc['C']
保持其原始形状,但现在完全填充了NaN
s。我认为在每次调用df.loc[ID]=…
df.unstack(fill\u value=0)时,尝试分配一个新的、不同形状的df是一个问题.stack()@Wen对于我给出的原始示例非常有效。但是,在我的实际数据集中,内部索引并非都以相同的值开始,因此这将填充开始行中的情况。请参见我的修订示例-尤其是df.loc['B']
的内部索引从X
开始,而不是从W
开始。这可能吗?