将列标题更改为行中的值

Moath

假设我有一个具有这种结构的数据集

pet_name    doggo     floofer    puppo     pupper 
A           None      floofer    None       None
B           doggo     None       None       None  
C           None      None       puppo      None 
D           None      None       None       pupper
E           doggo     floofer    None       None 
F           None      None       puppo      pupper
G           None      None       None       None 

我想有一个新名称为dog_stage的列,其中包含变量(doggo,floofer,puppo,pupper)

最终结果将是这样

name    dog_stage
A       floofer
B       doggo
C       puppo
D       pupper
E       doggo, floofer
F       puppo, pupper
G       None 

并删除列

耶斯列尔

对于这两种解决方案,仅过滤必要的列:

df = df[['name','doggo' , 'floofer', 'puppo', 'pupper']].copy()

第一个解决方案连接列名称如果不包含None像Nonetype或类似串NoneDataFrame.dot的矩阵乘法按列名:

#convert pet_name to index, if possible strings None replace and test not NaNs or not Nones
df1 = df.set_index('name').replace('None', np.nan).notna()

df1 = df1.dot(df1.columns + ',').str[:-1].reset_index(name='dog_stage')
print (df1)
      name      dog_stage
0        A        floofer
1        B          doggo
2        C          puppo
3        D         pupper
4        E  doggo,floofer
5        F   puppo,pupper
6        G         

另一个想法是,如果不在Nonelambda函数中,则连接每一行

df1 = (df.set_index('name')
         .replace('None', np.nan)
         .apply(lambda x: ','.join(x.dropna()), axis=1)
         .reset_index(name='dog_stage'))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将列值更改为pandas中的列标题

来自分类Dev

NetLogo:将标题更改为相反的值

来自分类Dev

将熊猫索引更改为列标题

来自分类Dev

将熊猫索引更改为列标题

来自分类Dev

如何将列中的值更改为伪值

来自分类Dev

将标题更改为锚标记中的数据标题?

来自分类Dev

将数组的列值更改为列标题

来自分类Dev

如何将第一行更改为R中的标题?

来自分类Dev

将列值从1更改为0

来自分类Dev

熊猫将值列表更改为列

来自分类Dev

将选定的行更改为列

来自分类Dev

将列div更改为行

来自分类Dev

将结果表从列更改为行

来自分类Dev

使用awk将列更改为行

来自分类Dev

将所有列标题更改为选择表。*

来自分类Dev

将DataFrame中的数组更改为值

来自分类Dev

当标题 DropdownListFor 更改时,一列值将更改 - 在 mvc razor 视图 c# 中

来自分类Dev

更改 TableView JavaFX 中的值列标题

来自分类Dev

将行值显示为列标题

来自分类Dev

该函数将行中的所有值相加100并更改为零

来自分类Dev

将数据框列中的负值更改为绝对值

来自分类Dev

如何将Datagridview中的Format列更改为该值的日期类型

来自分类Dev

将列中的唯一值更改为两个特定值之一

来自分类Dev

如何将Datagridview中的Format列更改为该值的日期类型

来自分类Dev

将值A更改为B,无论它位于哪一列中

来自分类Dev

将列中的“NULL”值更改为空白值 - Tibco Spotfire

来自分类Dev

将一行更改为 x 行 10 列

来自分类Dev

如何在SQL Server 2008中将行更改为列(多个表,联接等)

来自分类Dev

根据值将JTable行更改为粗体(使用prepareRenderer)