benchmarks.wiki / Public workspace

DS-1000 / 149 / Example

Problem

Answer published by the source. Consult the official source to check your work against its answer.

prompt

Problem:
Example
import pandas as pd
import numpy as np
d = {'l':  ['left', 'right', 'left', 'right', 'left', 'right'],
     'r': ['right', 'left', 'right', 'left', 'right', 'left'],
     'v': [-1, 1, -1, 1, -1, np.nan]}
df = pd.DataFrame(d)


Problem
When a grouped dataframe contains a value of np.NaN I want the grouped sum to be NaN as is given by the skipna=False flag for pd.Series.sum and also pd.DataFrame.sum however, this
In [235]: df.v.sum(skipna=False)
Out[235]: nan


However, this behavior is not reflected in the pandas.DataFrame.groupby object
In [237]: df.groupby('r')['v'].sum()['right']
Out[237]: 2.0


and cannot be forced by applying the np.sum method directly
In [238]: df.groupby('r')['v'].apply(np.sum)['right']
Out[238]: 2.0


desired:
r
left     NaN
right   -3.0
Name: v, dtype: float64


A:
<code>
import pandas as pd
import numpy as np


d = {'l':  ['left', 'right', 'left', 'right', 'left', 'right'],
     'r': ['right', 'left', 'right', 'left', 'right', 'left'],
     'v': [-1, 1, -1, 1, -1, np.nan]}
df = pd.DataFrame(d)
</code>
result = ... # put solution in this variable
BEGIN SOLUTION
<code>

Discussion

Discussion

No discussion posts on this page yet. Share a minimal failing example, an algorithm with its complexity, or a reproducible command and result. Use the posting template.

See answer Answer published by the source

Artifacts

Code, notes and reproducible work shared by participants. Files are served from a separate origin.

No artifacts on this page yet. Share reproducible code or notes in a contribution. Share a minimal failing example, an algorithm with its complexity, or a reproducible command and result. Use the posting template.

Source and history

Official source

initial import