gpt4 book ai didi

python - 如何水平折叠 Pandas 数据框?

转载 作者:行者123 更新时间:2023-12-04 17:09:52 24 4
gpt4 key购买 nike

我有以下 bool 值表:

df1 = pd.DataFrame(data={'w': [True, False, False], 
'x': [False, True, False],
'y': [True, True, True],
'z': [True, False, True]},
index=pd.Series([1, 2, 3], name='index'))
<表类="s-表"><头>索引wx<日>是 z<正文>1正确错误正确正确2错误正确正确错误3错误错误正确正确

我创建了一个宽度与 df1 相同的新表格:

pd.DataFrame(columns=[f'column{num}' for num in range(1, len(df1.columns) + 1)])
<表类="s-表"><头><日> 第 1 列第 2 列第 3 列第4列

我想做的是折叠 df1 中的列这样对于每一行,我只显示具有 True 的列值(value)观:

<表类="s-表"><头>索引第 1 列第 2 列第 3 列第4列<正文>1w是z不适用2x是不适用不适用3是z不适用不适用

最佳答案

dotstr.split 的一种方式:

import numpy as np

df2 = df1.dot(df1.columns+",")
.str.split(",", expand=True)
.replace(r'^\s*$', np.nan, regex=True)
.rename_axis(None)
df2.columns = [f'column{num}' for num in range(1, len(df2.columns)+1)]

>>> df2

column1 column2 column3 column4
1 w y z NaN
2 x y NaN NaN
3 y z NaN NaN

关于python - 如何水平折叠 Pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69727016/

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