如果我有一个带嵌套标题的数据框,如下所示:
df['sum']=df['John']+df['Joan']
...如何创建一个总和每行值的新列?
我尝试ValueError: Wrong number of items passed 3, placement implies 1
,但这导致了这个错误:
ui.grid
答案 0 :(得分:1)
舞会,一段时间没有听到你的声音。
您想要分组,但指定级别和轴。 axis=1
表示您要对行而不是列求和。 level=0
是列的第一行。
df = pd.DataFrame({
('John', 'Smith,'): [234, 2987],
('John', 'Jones,'): [432, 234],
('Joan', 'Smith,'): [324, 4354]}, index=['Index1', 'Index2'])
>>> df.groupby(level=0, axis=1).sum()
Joan John
Index1 324 666
Index2 4354 3221
答案 1 :(得分:1)
如果我理解正确的话:
...如何创建一个总和每行值的新列?
每行的总和只是
df.sum(axis=1)
诀窍是成为一个新专栏。您需要确保添加的列具有2级列标题。
df.loc[:, ('sum', 'sum')] = df.sum(axis=1)
我对它不满意,但它确实有效。
Joan John sum
Smith, Jones, Smith, sum
Index1 324 432 234 990
Index2 4354 234 2987 7575