为了账号安全,请及时绑定邮箱和手机立即绑定

通过条件加法转换数据

通过条件加法转换数据

天涯尽头无女友 2024-01-04 16:41:13
我需要帮助转换数据,如下所示:来自此版本中的数据集 (df1)   ID  apples  oranges  pears  apples_pears  oranges_pears0   1       1        0      0             1              01   2       0        1      0             1              02   3       0        1      1             0              1到如下数据集(df2):   ID  apples  oranges  pears0   1       2        0      11   2       1        1      12   3       0        2      2我想要完成的是从列名称中出现“苹果”一词的所有列中获取苹果的总价值。例如,在 df1 中有 2 个列名称,其中出现单词“apple”。如果将第一行中的所有苹果相加,则总共有 2 个。我想要新数据集 (df2) 中的苹果有一列。请注意,appleas_pears 的 1 是每个苹果和梨的 1。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

想法被分成DataFrame新的2 - 首先通过之前的所有值更改列名称,然后使用by和_第二个过滤器列通过之后的值更改列,最后通过和每列的总和连接在一起:_DataFrame.filter_concat

df1 = 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  pears

0   1       2        0      1

1   2       1        1      1

2   3       0        2      2


查看完整回答
反对 回复 2024-01-04
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信