python - Pandas 宽格式转换为长格式

标签 python pandas

我有一个像这样的 pandas 数据框,有一个 ID 列和一堆指示列(真/假):

df_have:

ID Male  Special_Need    Teeanger
1    T      F              T
2    F      T              F

我想转置它,但仅限于 attributes = True。即

df_want:

ID  Attribute
1    Male
1    Teenager
2   Special_Need

最佳答案

使用堆栈

df.set_index('ID').rename_axis('Attribute',1).stack().loc[lambda x : x=='T'].reset_index().drop(0,1)
Out[268]: 
   ID     Attribute
0   1          Male
1   1      Teeanger
2   2  Special_Need

关于python - Pandas 宽格式转换为长格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54990231/

相关文章:

python - Pandas 从 dataframe.loc 获取索引列表

python - 将 pandas DataFrame 转换为 excel 工作表时删除标题中的默认格式

python - 使用 Jupyter 笔记本将具有多个工作表的 Excel 文件转换为多个 csv 文件

python 与 R 的 Feather 与字符串的兼容性

python - 编写 python 代码来计算几何级数

python - 升级 `pip` 删除其他 python 的 pip

python - 拆分列并从中提取

python - 在 pandas df 中查找 A 列中的 True 值是否是他自 B 列中最后一个 True 以来的第一次出现

python - 使用和不使用 ':' 运算符删除 python 中的列表

python - 改变 turtle 的外观