gpt4 book ai didi

python - 将数据帧行附加到列的向量方法,反之亦然

转载 作者:行者123 更新时间:2023-12-04 22:39:06 27 4
gpt4 key购买 nike

我的数据框如下:

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

有矢量化的替代方案吗?

最佳答案

这是使用 reindex 的一种方法:

(df.reindex(df.columns.append(df.index), 
axis=1,
fill_value =0)
.reindex(df.index.append(df.columns),
axis=0,
fill_value =0))
print(df_new)

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

关于python - 将数据帧行附加到列的向量方法,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59874966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com