通过条件加法转换数据

我需要帮助转换数据,如下所示:


来自此版本中的数据集 (df1)


   ID  apples  oranges  pears  apples_pears  oranges_pears

0   1       1        0      0             1              0

1   2       0        1      0             1              0

2   3       0        1      1             0              1

到如下数据集(df2):


   ID  apples  oranges  pears

0   1       2        0      1

1   2       1        1      1

2   3       0        2      2

我想要完成的是从列名称中出现“苹果”一词的所有列中获取苹果的总价值。例如,在 df1 中有 2 个列名称,其中出现单词“apple”。如果将第一行中的所有苹果相加,则总共有 2 个。我想要新数据集 (df2) 中的苹果有一列。请注意,appleas_pears 的 1 是每个苹果和梨的 1。


天涯尽头无女友
浏览 48回答 1
1回答

紫衣仙女

想法被分成DataFrame新的2 - 首先通过之前的所有值更改列名称,然后使用by和_第二个过滤器列通过之后的值更改列,最后通过和每列的总和连接在一起:_DataFrame.filter_concatdf1 = df.set_index('ID')df2 = df1.filter(like='_')df1.columns = df1.columns.str.split('_').str[0]df2.columns = df2.columns.str.split('_').str[1]df = pd.concat([df1, df2], axis=1).sum(level=0, axis=1).reset_index()print (df)   ID  apples  oranges  pears0   1       2        0      11   2       1        1      12   3       0        2      2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python