我的数据框如下:
df = pd.DataFrame({'a': {'d': 1, 'e': 0, 'f': 1, 'g': 1},
'b': {'d': 0, 'e': 0, 'f': 0, 'g': 1},
'c': {'d': 0, 'e': 1, 'f': 1, 'g': 0}})
这使:
>>> df
a b c
d 1 0 0
e 0 0 1
f 1 0 1
g 1 1 0
对于数据框中的每一行,我想添加一个新列0
s ,对于数据框中的每一列,我想添加一个新行0
s.
到目前为止,我尝试通过以下方式解决这个问题:
edges = df.columns
for i in df.index:
df[i] = [0 for _ in range(len(df.index))]
for e in edges:
df = df.append(pd.Series({c:0 for c in df.columns},name=e))
这会产生所需的输出:
>>> df
a b c d e f g
d 1 0 0 0 0 0 0
e 0 0 1 0 0 0 0
f 1 0 1 0 0 0 0
g 1 1 0 0 0 0 0
a 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0
有矢量化的替代方案吗?