Python 通过条件加法转换数据

Python 通过条件加法转换数据,python,pandas,Python,Pandas,我需要以下帮助来转换数据: 来自此版本(df1)中的数据集 到如下所示的数据集(df2): 我要做的是从列名中出现“apple”一词的所有列中获取apple的总值。例如,在df1中,有两列名称中出现了“apple”一词。如果你把第一排的所有苹果加起来,总共有2个。我希望在新的数据集中(df2)有一列苹果。请注意,苹果和梨的1是每个苹果和梨的1。Idea被拆分为新的2-首先按\uu之前的所有值更改列名,然后按\u和\u之后按值更改列,最后按列合并和求和: df1 = df.set_index('I

我需要以下帮助来转换数据:

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

到如下所示的数据集(df2):


我要做的是从列名中出现“apple”一词的所有列中获取apple的总值。例如,在df1中,有两列名称中出现了“apple”一词。如果你把第一排的所有苹果加起来,总共有2个。我希望在新的数据集中(df2)有一列苹果。请注意,苹果和梨的1是每个苹果和梨的1。

Idea被拆分为新的2-首先按
\uu
之前的所有值更改列名,然后按
\u
\u
之后按值更改列,最后按列合并和求和:

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
   ID  apples  oranges  pears
0   1       2        0      1
1   2       1        1      1
2   3       0        2      2
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