python中虚拟变量的数据操作
我有一个如下的数据框(示例如下所示) 这里A表示仅发生了事件A,A | B表示A和B都发生在特定的一天。现在,我已经为上述事件形成了虚拟变量。随后,我想将B、C和D组合成一个名为“小调”的项目。因此,我的输出如下所示:python中虚拟变量的数据操作,python,pandas,Python,Pandas,我有一个如下的数据框(示例如下所示) 这里A表示仅发生了事件A,A | B表示A和B都发生在特定的一天。现在,我已经为上述事件形成了虚拟变量。随后,我想将B、C和D组合成一个名为“小调”的项目。因此,我的输出如下所示: Date event A Minor 2015-10-01 A 1 0 2015-10-02 A|B 1 1 2015-11-01 C 0 1 2015-10-07 D 0 1 正如您在第二行看到的,Minor
Date event A Minor
2015-10-01 A 1 0
2015-10-02 A|B 1 1
2015-11-01 C 0 1
2015-10-07 D 0 1
正如您在第二行看到的,Minor等于1,因为B也发生在那天。我有点困惑如何处理这个问题。实际上,我有20多个栏目需要分组为次要栏目。如果您只需要0
和1
输出,我们将不胜感激。我认为您需要:
cols = ['B','C','D']
df['Minor'] = df[cols].max(axis=1)
df = df.drop(cols, axis=1)
print (df)
Date event A Minor
0 2015-10-01 A 1 0
1 2015-10-02 A|B 1 1
2 2015-11-01 C 0 1
3 2015-10-07 D 0 1
或者,如果需要求和值,请使用:
更改后的df差异
:
print (df)
Date event A B C D
0 2015-10-01 A 1 0 0 0
1 2015-10-02 A|B 1 1 0 0
2 2015-11-01 C|D 0 0 1 1
3 2015-10-07 D 0 0 0 1
cols = ['B','C','D']
df['Minor'] = df[cols].sum(axis=1)
df = df.drop(cols, axis=1)
print (df)
Date event A Minor
0 2015-10-01 A 1 0
1 2015-10-02 A|B 1 1
2 2015-11-01 C|D 0 2
3 2015-10-07 D 0 1
df['Minor'] = df[cols].max(axis=1)
df = df.drop(cols, axis=1)
print (df)
Date event A Minor
0 2015-10-01 A 1 0
1 2015-10-02 A|B 1 1
2 2015-11-01 C|D 0 1
3 2015-10-07 D 0 1
使用
assign
+drop
cols = list('BCD')
df.assign(Minor=df[cols].sum(1)).drop(cols, 1)
Date event A Minor
0 2015-10-01 A 1 0
1 2015-10-02 A|B 1 1
2 2015-11-01 C 0 1
3 2015-10-07 D 0 1
df[['B','C','D']].和(轴=1)
?
print (df)
Date event A B C D
0 2015-10-01 A 1 0 0 0
1 2015-10-02 A|B 1 1 0 0
2 2015-11-01 C|D 0 0 1 1
3 2015-10-07 D 0 0 0 1
cols = ['B','C','D']
df['Minor'] = df[cols].sum(axis=1)
df = df.drop(cols, axis=1)
print (df)
Date event A Minor
0 2015-10-01 A 1 0
1 2015-10-02 A|B 1 1
2 2015-11-01 C|D 0 2
3 2015-10-07 D 0 1
df['Minor'] = df[cols].max(axis=1)
df = df.drop(cols, axis=1)
print (df)
Date event A Minor
0 2015-10-01 A 1 0
1 2015-10-02 A|B 1 1
2 2015-11-01 C|D 0 1
3 2015-10-07 D 0 1
cols = list('BCD')
df.assign(Minor=df[cols].sum(1)).drop(cols, 1)
Date event A Minor
0 2015-10-01 A 1 0
1 2015-10-02 A|B 1 1
2 2015-11-01 C 0 1
3 2015-10-07 D 0 1