> benchmark {source process.nu}
───┬───────────────────
# │ real time
───┼───────────────────
0 │ 557ms 658us 500ns
───┴───────────────────
```
By comparison, here's the same example in pandas:
```
import pandas as pd
df = pd.read_csv("Data7602DescendingYearOrder.csv")
res = df.groupby("year")["geo_count"].sum()
print(res)
```
```
> benchmark {python .\load.py}
───┬────────────────────────
# │ real time
───┼────────────────────────
0 │ 1sec 966ms 954us 800ns
───┴────────────────────────
```
> System Details: The benchmarks presented in this section were run using a machine with a processor Intel(R) Core(TM) i7-10710U (CPU @1.10GHz 1.61 GHz) and 16 gb of RAM.
While these results are still early, we're excited to see what can be possible using Nushell for processing large datasets.
You can learn more about dataframes, including many examples and a much more in-depth explanation, by reading the new [dataframes chapter of the Nushell book](https://www.nushell.sh/book/dataframes.html).
Note: while all the dataframe functionality is currently grouped behind the `dataframe` top-level command, we hope to extend support for dataframes to other common Nushell commands.
## Improved multiline support (sophiajt)
We've extended multiline expression support to more areas. Now, you can span tables over multiple lines more naturally:
```
[
[name, value];
[foo, 2]
[bar, 7]
]
```
Subexpression now also span multiple lines. Everything inside of the parentheses are treated as if they were written together:
```
(echo foo
| str length)
```
This also gives you a way to split up commands that have many arguments over multiple lines:
```
(echo foo
bar)
```
## Multiple shorthand environment vars (sophiajt)
A long-time shortcoming is now fixed in 0.34. You can now pass multiple environment shorthands to the same command:
```
> FOO=bar BAR=baz $nu.env.FOO + $nu.env.BAR
barbaz
```
## Variable completions (andrasio)
In addition to steadily improving the completion engine, we've started adding support for completions for built-in variables.
You can now write `$nu.<TAB>` to complete into the built-in `$nu` variable, including completions for `$nu.env.S<TAB>` for completing into environment variables.
Other variables that are in scope can also have their names completed.
## New commands
- Added the [`pathvar` command for updating the PATH](https://github.com/nushell/nushell/pull/3670) (nathom)
- Added a [`paste` command for pasting from clipboard](https://github.com/nushell/nushell/pull/3694) (1ntEgr8)
- Added [`$nu.lang` to reflect on the current commands](https://github.com/nushell/nushell/pull/3720) (fdncred)
## Additional improvements
- Updated [`into binary` to be more composable](https://github.com/nushell/nushell/pull/3758) (fdncred)
- Added [unique option to `uniq`](https://github.com/nushell/nushell/pull/3754) (mcbattirola)
- Removed an [outdated README note](https://github.com/nushell/nushell/pull/3751) (yaymukund)
- Added more [comparison coercions with `$nothing`](https://github.com/nushell/nushell/pull/3750) (sophiajt)
- Updated the [`version` command to output more info](https://github.com/nushell/nushell/pull/3749) (fdncred)
- Fixed a [broken unit test](https://github.com/nushell/nushell/pull/3745) (fdncred)
- Downgraded [crossterm to fix pager compilation](https://github.com/nushell/nushell/pull/3740) (kubouch)