red_amber 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.devcontainer/Dockerfile +75 -0
- data/.devcontainer/devcontainer.json +38 -0
- data/.devcontainer/onCreateCommand.sh +22 -0
- data/.rubocop.yml +3 -3
- data/CHANGELOG.md +85 -18
- data/README.ja.md +45 -26
- data/README.md +40 -24
- data/Rakefile +55 -0
- data/doc/Dev_Containers.ja.md +290 -0
- data/doc/Dev_Containers.md +292 -0
- data/doc/qmd/examples_of_red_amber.qmd +4596 -0
- data/doc/qmd/red-amber.qmd +90 -0
- data/docker/Dockerfile +2 -2
- data/docker/Gemfile +1 -1
- data/docker/docker-compose.yml +1 -1
- data/docker/readme.md +5 -5
- data/lib/red_amber/data_frame_displayable.rb +1 -1
- data/lib/red_amber/data_frame_loadsave.rb +1 -1
- data/lib/red_amber/data_frame_selectable.rb +2 -2
- data/lib/red_amber/data_frame_variable_operation.rb +6 -6
- data/lib/red_amber/group.rb +287 -39
- data/lib/red_amber/subframes.rb +6 -6
- data/lib/red_amber/vector.rb +2 -1
- data/lib/red_amber/vector_selectable.rb +68 -35
- data/lib/red_amber/vector_string_function.rb +81 -13
- data/lib/red_amber/version.rb +1 -1
- data/red_amber.gemspec +2 -2
- metadata +16 -13
- data/docker/Gemfile.lock +0 -118
- data/docker/example +0 -86
- data/docker/notebook/examples_of_red_amber.ipynb +0 -8562
- data/docker/notebook/red-amber.ipynb +0 -188
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b921353dbfcaf634a2e026f541caaf914125482c956fa05886f6a542f6ac2e35
|
4
|
+
data.tar.gz: 737fae720227e8e3ef36c2c3142bdb7096b051fd51363a2978079e766081d320
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f45b7c45725b2da1d9459edaa3ae59a2355e771055c281eb612356703b727315b64ed6963ce02493e6c8ef94194e848fc19b1cf4bbd0620b44ba2e24c1953b0
|
7
|
+
data.tar.gz: ca9f134d488168f0d2396f55b118fa7db78d2f6969286896ba2139d891a8a09f8a7fde69141c2c226212748c16f93ece4737f65465f9ea0616e500177806c314
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# [Choice] debian-11, debian-10, ubuntu-22.04, ubuntu-20.04, ubuntu-18.04
|
2
|
+
ARG VARIANT=ubuntu-22.04
|
3
|
+
|
4
|
+
FROM mcr.microsoft.com/devcontainers/base:${VARIANT}
|
5
|
+
|
6
|
+
# Set env for tracking that we're running in a devcontainer
|
7
|
+
ENV DEVCONTAINER=true
|
8
|
+
|
9
|
+
RUN set -e; \
|
10
|
+
apt-get update; \
|
11
|
+
apt-get install -y \
|
12
|
+
# To build Ruby
|
13
|
+
autoconf \
|
14
|
+
bison \
|
15
|
+
rustc \
|
16
|
+
libssl-dev \
|
17
|
+
libyaml-dev \
|
18
|
+
libreadline6-dev \
|
19
|
+
zlib1g-dev \
|
20
|
+
libgmp-dev \
|
21
|
+
libncurses5-dev \
|
22
|
+
libffi-dev \
|
23
|
+
libgdbm6 \
|
24
|
+
libgdbm-dev \
|
25
|
+
libdb-dev \
|
26
|
+
uuid-dev \
|
27
|
+
# To install IRuby
|
28
|
+
libczmq-dev \
|
29
|
+
libzmq3-dev
|
30
|
+
|
31
|
+
# Install Apache Arrow
|
32
|
+
ARG APACHE_ARROW_VERSION=12.0.1-1
|
33
|
+
ARG arrow_deb_tmp=/tmp/apache-arrow-apt-source-latest.deb
|
34
|
+
ARG arrow_apt_source=https://apache.jfrog.io/artifactory/arrow/ubuntu/pool/jammy/main/a/apache-arrow-apt-source/apache-arrow-apt-source_${APACHE_ARROW_VERSION}_all.deb
|
35
|
+
RUN set -e; \
|
36
|
+
apt-get update; \
|
37
|
+
curl -sfSL -o ${arrow_deb_tmp} ${arrow_apt_source}; \
|
38
|
+
apt-get install -y --no-install-recommends ${arrow_deb_tmp}; \
|
39
|
+
rm -f ${arrow_deb_tmp}; \
|
40
|
+
apt-get update; \
|
41
|
+
apt-get install -y \
|
42
|
+
libarrow-dev \
|
43
|
+
libarrow-glib-dev \
|
44
|
+
libarrow-dataset-dev \
|
45
|
+
libarrow-flight-dev \
|
46
|
+
libparquet-dev \
|
47
|
+
libparquet-glib-dev \
|
48
|
+
libgandiva-dev \
|
49
|
+
libgandiva-glib-dev
|
50
|
+
|
51
|
+
# This Dockerfile adds a non-root user with sudo access. Use the "remoteUser"
|
52
|
+
ARG USERNAME=vscode
|
53
|
+
ARG USER_UID=1000
|
54
|
+
ARG USER_GID=$USER_UID
|
55
|
+
|
56
|
+
USER $USERNAME
|
57
|
+
|
58
|
+
# Install rbenv
|
59
|
+
ARG RBENV_RUBY=3.2.2
|
60
|
+
RUN set -e; \
|
61
|
+
git clone https://github.com/rbenv/rbenv.git $HOME/.rbenv; \
|
62
|
+
echo 'eval "$($HOME/.rbenv/bin/rbenv init -)"' >> $HOME/.profile; \
|
63
|
+
echo 'eval "$($HOME/.rbenv/bin/rbenv init -)"' >> $HOME/.bashrc; \
|
64
|
+
git clone https://github.com/rbenv/ruby-build.git $HOME/.rbenv/plugins/ruby-build
|
65
|
+
|
66
|
+
# Install Ruby
|
67
|
+
# Append `RUBY_CONFIGURE_OPTS=--disable-install-doc ` before rbenv to disable documents
|
68
|
+
RUN set -e; \
|
69
|
+
$HOME/.rbenv/bin/rbenv install --verbose $RBENV_RUBY; \
|
70
|
+
$HOME/.rbenv/bin/rbenv global $RBENV_RUBY
|
71
|
+
|
72
|
+
# Install IRuby
|
73
|
+
RUN set -e; \
|
74
|
+
$HOME/.rbenv/bin/rbenv exec gem install iruby; \
|
75
|
+
$HOME/.rbenv/bin/rbenv exec iruby register --force
|
@@ -0,0 +1,38 @@
|
|
1
|
+
{
|
2
|
+
"name": "RedAmber",
|
3
|
+
"build": {
|
4
|
+
"dockerfile": "Dockerfile",
|
5
|
+
"cacheFrom": "ghcr.io/red-data-tools/red-amber"
|
6
|
+
},
|
7
|
+
"features": {
|
8
|
+
"ghcr.io/devcontainers/features/python:1": {
|
9
|
+
"installTools": true,
|
10
|
+
"installJupyterlab": true,
|
11
|
+
"version": "3.11"
|
12
|
+
},
|
13
|
+
// We don't use Ruby feature here
|
14
|
+
// "ghcr.io/devcontainers/features/ruby:1": {},
|
15
|
+
"ghcr.io/rocker-org/devcontainer-features/quarto-cli:1": {
|
16
|
+
"installTinyTex": true,
|
17
|
+
"version": "latest"
|
18
|
+
},
|
19
|
+
"ghcr.io/devcontainers/features/github-cli:1": {}
|
20
|
+
},
|
21
|
+
// VS Code extentions for Ruby
|
22
|
+
"customizations": {
|
23
|
+
"vscode": {
|
24
|
+
"extensions": [
|
25
|
+
"rebornix.Ruby",
|
26
|
+
"shopify.ruby-lsp"
|
27
|
+
]
|
28
|
+
}
|
29
|
+
},
|
30
|
+
// Use init process to deal with zombie process
|
31
|
+
"init": true,
|
32
|
+
// set TZ from local machine's environment defaulting to 'UTC' if not supplied.
|
33
|
+
"containerEnv": {
|
34
|
+
"RUBYLIB": "/workspaces/red_amber/lib",
|
35
|
+
"TZ": "${localEnv:TZ:UTC}"
|
36
|
+
},
|
37
|
+
"onCreateCommand": ".devcontainer/onCreateCommand.sh"
|
38
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -e
|
3
|
+
|
4
|
+
# Install language and set timezone
|
5
|
+
# You should change here if you use another
|
6
|
+
sudo apt-get update
|
7
|
+
sudo apt-get install -y language-pack-ja
|
8
|
+
|
9
|
+
echo 'export LANG=ja_JP.UTF-8' >> $HOME/.bashrc
|
10
|
+
echo 'export LANG=ja_JP.UTF-8' >> $HOME/.profile
|
11
|
+
echo 'export TZ=Asia/Tokyo' >> $HOME/.bashrc
|
12
|
+
echo 'export TZ=Asia/Tokyo' >> $HOME/.profile
|
13
|
+
|
14
|
+
# Install HaranoAjiFonts
|
15
|
+
mkdir -p $HOME/.fonts
|
16
|
+
git clone https://github.com/trueroad/HaranoAjiFonts.git $HOME/.fonts/HaranoAjiFonts
|
17
|
+
|
18
|
+
# Install gems
|
19
|
+
bundle install
|
20
|
+
|
21
|
+
# Create Jupyter Notebooks
|
22
|
+
rake quarto:convert
|
data/.rubocop.yml
CHANGED
@@ -52,7 +52,7 @@ Lint/BinaryOperatorWithIdenticalOperands:
|
|
52
52
|
|
53
53
|
Lint/Debugger:
|
54
54
|
Exclude:
|
55
|
-
- '
|
55
|
+
- 'bin/example'
|
56
56
|
|
57
57
|
# Need for test with empty block
|
58
58
|
# Offense count: 1
|
@@ -225,7 +225,7 @@ Naming/PredicateName:
|
|
225
225
|
Rubycw/Rubycw:
|
226
226
|
Exclude:
|
227
227
|
- 'test/**/*'
|
228
|
-
- '
|
228
|
+
- 'bin/example'
|
229
229
|
|
230
230
|
# Offense count: 16
|
231
231
|
# This cop supports safe autocorrection (--autocorrect).
|
@@ -242,7 +242,7 @@ Style/SlicingWithRange:
|
|
242
242
|
|
243
243
|
Style/MixinUsage:
|
244
244
|
Exclude:
|
245
|
-
- '
|
245
|
+
- 'bin/example'
|
246
246
|
|
247
247
|
# Necessary to Vector < 0 element-wise comparison
|
248
248
|
# Offense count: 5
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,71 @@
|
|
1
|
-
## [0.5.
|
1
|
+
## [0.5.1] - 2023-08-18
|
2
|
+
|
3
|
+
Docker environment is replaced by Dev Container,
|
4
|
+
and Jupyter Notebooks will be created from qmd files.
|
5
|
+
|
6
|
+
- Breaking change
|
7
|
+
|
8
|
+
- Bug fixes
|
9
|
+
- Fix timestamp test to set TZ locally (#249)
|
10
|
+
- Fix regexp for beginning of String (#251)
|
11
|
+
- Fix loading bin/Gemfile locally in bin/jupyter script (#261)
|
12
|
+
|
13
|
+
- New features and improvements
|
14
|
+
- Support sort and null_placement options in Vector#rank (#265)
|
15
|
+
- Add Vector#find_substring method (#270)
|
16
|
+
- Add Group#one method (#274)
|
17
|
+
- Add Group#all and #any method (#274)
|
18
|
+
- Add Group#median method (#274)
|
19
|
+
- Add Group#count_uniq method (#274)
|
20
|
+
- Introduce Dev Container environment
|
21
|
+
- Introduce Devcontainer environment (#253)
|
22
|
+
- Change lifecycle script from postCreate to onCreate (#253)
|
23
|
+
- Move example to bin (#253)
|
24
|
+
- Fix Python and Ruby versions in Dev Container (#254)
|
25
|
+
- Add locale and timezone settings (#256)
|
26
|
+
- Add quarto from devcontainer feature (#259)
|
27
|
+
- Install HaranoAjiFonts as default Tex font (#259)
|
28
|
+
|
29
|
+
- Refactoring
|
30
|
+
- Rename boolean methods in VectorStringFunction (#263)
|
31
|
+
- Refine Vector#inspect to show wheather chunked or not (#267)
|
32
|
+
- Add an alias Group#count_all for #group_count (#274)
|
33
|
+
|
34
|
+
- Improve in tests/CI
|
35
|
+
- Create rake commands for Notebook convert/test (#269)
|
36
|
+
- Fix rubocop warning of forwarding arguments in assign_update (#269)
|
37
|
+
- Use rake to start example script (#269)
|
38
|
+
- Add test in Vector#rank to cover illegal rank option error (#271)
|
39
|
+
- Add bundle install to Rakefile (#276)
|
40
|
+
- Use Dockerfile to create dev container (#276)
|
41
|
+
- Save image to ghcr in ci (#276)
|
42
|
+
|
43
|
+
- Documentation and Example
|
44
|
+
- YARD
|
45
|
+
- Update Docker Environment (#245)
|
46
|
+
- Refine jupyter notebook environment (#253)
|
47
|
+
- Refine yard in Group aggregations (#274)
|
48
|
+
- Fix yard of Vector#rank (#269)
|
49
|
+
- Fix yard of Group (#269)
|
50
|
+
- Notebook
|
51
|
+
- Start source management for jupyter notebook by qmd (#259)
|
52
|
+
- Don't create ipynb if it exists (#261)
|
53
|
+
- Add Group methods (125 in total) (#269)
|
54
|
+
- Add ArrowFunction (126 in total) (#269)
|
55
|
+
- Add DataFrame#auto_cast (127 in total) (#269)
|
56
|
+
- Update required version in examples notebook (#269)
|
57
|
+
- Update examples_of_red_amber (#269)
|
58
|
+
- Update red-amber.qmd (#269)
|
59
|
+
|
60
|
+
- GitHub site
|
61
|
+
- Fix broken link in README/README.ja by Viktorius Suwandi (#262)
|
62
|
+
- Change description in gemspec (#254)
|
63
|
+
- Add documents for Dev Container (#254)
|
64
|
+
|
65
|
+
- Thanks
|
66
|
+
- Viktorius Suwandi
|
67
|
+
|
68
|
+
## [0.5.0] - 2023-05-24
|
2
69
|
|
3
70
|
- Breaking change
|
4
71
|
- Use non keyword argument in #sub_by_value (#219)
|
@@ -61,7 +128,7 @@
|
|
61
128
|
|
62
129
|
- Bug fixes
|
63
130
|
- Fix Vector#modulo, #fdiv, #remainder (#203)
|
64
|
-
|
131
|
+
|
65
132
|
- New features and improvements
|
66
133
|
- Update SubFrames#take to return SubFrames (#212)
|
67
134
|
|
@@ -106,7 +173,7 @@
|
|
106
173
|
- Fix Vector#rank when data is ChunkedArray (#198)
|
107
174
|
- Fix Vector element-wise functions with nil as scalar (#198)
|
108
175
|
- Support :force_order for all methods of join family (#199)
|
109
|
-
- Supports :force_order option to force sorting after join for all #join familiy.
|
176
|
+
- Supports :force_order option to force sorting after join for all #join familiy.
|
110
177
|
- This will valuable in some cases such as large dataframes.
|
111
178
|
- Ensure baseframe's schema for SubFrames (#200)
|
112
179
|
|
@@ -508,11 +575,11 @@
|
|
508
575
|
- Move binder support to heronshoes/docker-stacks repository.
|
509
576
|
- Update README notebook on binder.
|
510
577
|
- Add examples_of_RedAmber notebook on binder.
|
511
|
-
|
578
|
+
|
512
579
|
- Start to use discussions.
|
513
580
|
|
514
581
|
- Thanks
|
515
|
-
|
582
|
+
|
516
583
|
- Kenta Murata
|
517
584
|
|
518
585
|
## [0.2.1] - 2022-09-07
|
@@ -561,7 +628,7 @@
|
|
561
628
|
- Update Jupyter Notebook `71 examples of RedAmber`
|
562
629
|
|
563
630
|
- Thanks
|
564
|
-
|
631
|
+
|
565
632
|
- Kenta Murata
|
566
633
|
|
567
634
|
## [0.2.0] - 2022-08-15
|
@@ -576,7 +643,7 @@
|
|
576
643
|
- Remove optional `require` for rover (#55)
|
577
644
|
Fix DataFrame.new for argument with Rover::DataFrame.
|
578
645
|
- Fix occasional failure in CI (#59)
|
579
|
-
Sometimes the CI test fails. I added -dev dependency
|
646
|
+
Sometimes the CI test fails. I added -dev dependency
|
580
647
|
in Arrow install by apt, not doing in bundler.
|
581
648
|
|
582
649
|
- Fix calling :take in V#[] (#56)
|
@@ -594,7 +661,7 @@
|
|
594
661
|
- Upgrade to Arrow 9.0.0 (#59)
|
595
662
|
- Add Vector#quantile method (#59)
|
596
663
|
Arrow::QuantileOptions has supported in Arrow GLib 9.0.0 (ARROW-16623, Thanks!)
|
597
|
-
|
664
|
+
|
598
665
|
- Add Vector#quantiles (#62)
|
599
666
|
|
600
667
|
- Add DataFrame#each_row (#56)
|
@@ -605,7 +672,7 @@
|
|
605
672
|
- Refine DataFrame.new to use pattern match
|
606
673
|
- Use pattern match in DataFrame#assign
|
607
674
|
- Use pattern match in DataFrame#rename
|
608
|
-
|
675
|
+
|
609
676
|
- Accept Array for renamer/assigner in #rename/#assign (#61)
|
610
677
|
- Accept assigner by Arrays in DataFrame#assign
|
611
678
|
- Accept renamer pairs by Arrays in DataFrame#rename
|
@@ -620,15 +687,15 @@
|
|
620
687
|
- Intorduce DataFrame#to_wide method
|
621
688
|
|
622
689
|
- Others
|
623
|
-
|
690
|
+
|
624
691
|
- Add alias sort_index for array_sort_indices (#59)
|
625
692
|
- Enable :width option in DataFrame#to_s (#62)
|
626
693
|
- Add options to DataFrame#format_table (#62)
|
627
694
|
|
628
695
|
- Update Documents
|
629
|
-
|
696
|
+
|
630
697
|
- Add Yard doc for some methods
|
631
|
-
|
698
|
+
|
632
699
|
- Update Jupyter notebook '61 Examples of Red Amber' (#65)
|
633
700
|
|
634
701
|
## [0.1.8] - 2022-08-04 (experimental)
|
@@ -691,7 +758,7 @@
|
|
691
758
|
- Show nils.
|
692
759
|
- Show data types.
|
693
760
|
- Refine documents to use new formatter output
|
694
|
-
|
761
|
+
|
695
762
|
- Simplify options of Vector functions (#46)
|
696
763
|
Vector functions with options use optional argument opt in previous code.
|
697
764
|
|
@@ -703,7 +770,7 @@
|
|
703
770
|
- Add methods to Group
|
704
771
|
|
705
772
|
- Move parquet and rover to development dependency (#49)
|
706
|
-
|
773
|
+
|
707
774
|
- Refine text in `DataFrame#to_iruby` (#40)
|
708
775
|
|
709
776
|
- Add badges in Github site
|
@@ -800,7 +867,7 @@
|
|
800
867
|
- Add gem and status badges in README. (#42) [Patch by kojix2]
|
801
868
|
|
802
869
|
- Thanks
|
803
|
-
|
870
|
+
|
804
871
|
- kojix2
|
805
872
|
|
806
873
|
## [0.1.5] - 2022-06-12 (experimental)
|
@@ -841,7 +908,7 @@
|
|
841
908
|
- Change to use DataFrame#map_indices in #[]
|
842
909
|
|
843
910
|
- Add rounding functions with opts (#21)
|
844
|
-
- With options :mode and :n_digits
|
911
|
+
- With options :mode and :n_digits
|
845
912
|
- :n_digits also can be specified with :multiple option in `Vector#round_to_multiple`
|
846
913
|
- `Vector#round`
|
847
914
|
- `Vector#ceil`
|
@@ -909,7 +976,7 @@
|
|
909
976
|
- Add example about TDR (#4)
|
910
977
|
- Separate README to create DataFrame and Vector documents (#12)
|
911
978
|
- Add DataFrame model concept image to README (#12)
|
912
|
-
|
979
|
+
|
913
980
|
- GitHub site
|
914
981
|
- Switched to use merge on GitHub (not to push merged master) (#1)
|
915
982
|
- Create lifetime issue #3 to show the goal of this project (#3)
|
@@ -934,7 +1001,7 @@
|
|
934
1001
|
|
935
1002
|
- `Vector`
|
936
1003
|
- Add categorization functions
|
937
|
-
|
1004
|
+
|
938
1005
|
This is an important step to support `slice` method and NA treatment features.
|
939
1006
|
- `is_finite`
|
940
1007
|
- `is_inf`
|
data/README.ja.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[](https://github.com/red-data-tools/red_amber/actions/workflows/ci.yml)
|
5
5
|
[](https://codeclimate.com/github/heronshoes/red_amber/maintainability)
|
6
6
|
[](https://codeclimate.com/github/heronshoes/red_amber/test_coverage)
|
7
|
-
[](https://
|
7
|
+
[](https://red-data-tools.github.io/red_amber/)
|
8
8
|
[](https://github.com/red-data-tools/red_amber/discussions)
|
9
9
|
|
10
10
|
Rubyistのためのデータフレームライブラリ.
|
@@ -17,17 +17,25 @@ Rubyistのためのデータフレームライブラリ.
|
|
17
17
|
|
18
18
|

|
19
19
|
|
20
|
+
## 概要
|
21
|
+
* RedAmberはRubyで書かれたデータフレームライブラリです。[Apache Arrow](https://arrow.apache.org/)の列指向データフォーマットを扱うことができます。
|
22
|
+
* Rubyらしいブロックやコレクションを使って、Rubyらしい書き方でデータフレームの操作ができることを目指しています。
|
23
|
+
* このリポジトリは[開発コンテナ(Dev Container)](https://containers.dev/)をサポートしているので、RedAmberの操作が容易に[試せます](doc/Dev_Containers.ja.md)。
|
24
|
+
* [使用例が豊富なドキュメント](https://red-data-tools.github.io/red_amber/)と、127項目の主な操作例を記載したJupyter Notebookドキュメントがあります。
|
25
|
+
|
20
26
|
## 必要な環境
|
21
27
|
### Ruby
|
22
28
|
- Ruby 3.0 以上.
|
23
29
|
|
24
30
|
### ライブラリ
|
25
31
|
```ruby
|
26
|
-
gem 'red-arrow', '~> 12.0.0' # お使いの環境に合わせた Apache Arrow が必要です
|
27
|
-
|
28
|
-
gem 'red-
|
32
|
+
gem 'red-arrow', '~> 12.0.0' # お使いの環境に合わせた Apache Arrow が必要です
|
33
|
+
# 下記のインストールを参照してください
|
34
|
+
gem 'red-arrow-numo-narray' # 必要に応じて。Numo::NArray との連携またはランダムサンプリングが必要な場合。
|
35
|
+
gem 'red-parquet', '~> 12.0.0' # 必要に応じて。Parquet の入出力が必要な場合。
|
36
|
+
gem 'red-datasets-arrow' # 必要に応じて。Red Datasets を利用する場合。
|
29
37
|
gem 'red-arrow-activerecord' # 必要に応じて。Active Record とのデータ交換が必要な場合。
|
30
|
-
gem 'rover-df',
|
38
|
+
gem 'rover-df', # 必要に応じて。Rover::DataFrame に対する入出力が必要な場合。
|
31
39
|
```
|
32
40
|
|
33
41
|
## インストール
|
@@ -39,7 +47,7 @@ RedAmberをインストールする前に、下記のライブラリのインス
|
|
39
47
|
- Apache Parquet GLib (~> 12.0.0) # Parquetの入出力が必要な場合。
|
40
48
|
|
41
49
|
環境ごとの詳しいインストール方法は、 [Apache Arrow install document](https://arrow.apache.org/install/) を参照してください。
|
42
|
-
|
50
|
+
|
43
51
|
- Ubuntuの場合の最低限必要なインストール例:
|
44
52
|
|
45
53
|
```
|
@@ -48,8 +56,7 @@ RedAmberをインストールする前に、下記のライブラリのインス
|
|
48
56
|
wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
|
49
57
|
sudo apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
|
50
58
|
sudo apt update
|
51
|
-
sudo apt install -y -V libarrow-dev
|
52
|
-
sudo apt install -y -V libarrow-glib-dev
|
59
|
+
sudo apt install -y -V libarrow-dev libarrow-glib-dev
|
53
60
|
```
|
54
61
|
|
55
62
|
- Fedora 39 (Rawhide)の場合:
|
@@ -62,36 +69,45 @@ RedAmberをインストールする前に、下記のライブラリのインス
|
|
62
69
|
- macOS の場合は、Homebrewを使用する:
|
63
70
|
|
64
71
|
```
|
65
|
-
brew install apache-arrow
|
66
|
-
brew install apache-arrow-glib
|
72
|
+
brew install apache-arrow apache-arrow-glib
|
67
73
|
```
|
68
74
|
|
69
75
|
Apache Arrowがインストールできたら、下記の行をGemfileに追加してください:
|
70
76
|
|
71
77
|
```ruby
|
72
|
-
gem 'red-arrow', '~> 12.0.0'
|
78
|
+
gem 'red-arrow', '~> 12.0.0'
|
73
79
|
gem 'red_amber'
|
80
|
+
gem 'red-arrow-numo-narray' # 必要に応じて。Numo::NArray との連携またはランダムサンプリングが必要な場合。
|
74
81
|
gem 'red-parquet', '~> 12.0.0' # 必要に応じて。Parquetの入出力が必要な場合。
|
75
|
-
gem 'red-datasets-arrow' # 必要に応じて。Red Datasets
|
76
|
-
gem 'red-arrow-numo-narray' # 必要に応じて。Numo::NArrayとの連携が必要な場合
|
82
|
+
gem 'red-datasets-arrow' # 必要に応じて。Red Datasets を利用する場合。
|
77
83
|
gem 'red-arrow-activerecord' # 必要に応じて。Active Record とのデータ交換が必要な場合。
|
78
|
-
gem 'rover-df',
|
84
|
+
gem 'rover-df', # 必要に応じて。Rover::DataFrameに対する入出力が必要な場合。
|
79
85
|
```
|
80
86
|
|
81
87
|
`bundle install`とするか、または `gem install red_amber`としてインストールしてください。
|
82
88
|
|
89
|
+
## Development Containersによる開発環境
|
90
|
+
|
91
|
+
このリポジトリは [開発コンテナ(Dev Container)](https://containers.dev/)をサポートしています。
|
92
|
+
これを使うと、ローカルの環境を変更することなく、RedAmberに必要なツール一式を含んだ環境を準備することができます。この環境には、Ruby、Apache Arrow、RedAmberのソースツリー、GitHub CI、サンプルデータセット、IRubyカーネルを含んだJupyter Labなどが含まれています。
|
93
|
+
|
94
|
+
RedAmber用のDev Containerは、`.devcontainer` ディレクトリに必要な設定が書かれています。
|
95
|
+
使用例は、[開発コンテナ(Development Containers)の利用](doc/Dev_Containers.ja.md)をご参照ください。
|
96
|
+
|
83
97
|
## Docker イメージと Jupyter Notebook
|
84
98
|
|
99
|
+
(注:将来削除される可能性があります。上記のDev Containerをご活用ください。)
|
100
|
+
|
85
101
|
このリポジトリの`docker` フォルダーから Docker コンテナ環境を生成できます。リポジトリをクローンしてから、dockerフォルダーにある [readme](docker/readme.md) を参照してください。その環境では `docker/notebook` フォルダーにある Jupyter Notebookイメージを試用できます。
|
86
102
|
|
87
|
-
このREADMEの内容をネットワーク上のJupyter Notebookでインタラクティブに試用することも出来ます。 [Binder](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=red-amber.ipynb).
|
103
|
+
このREADMEの内容をネットワーク上のJupyter Notebookでインタラクティブに試用することも出来ます。 [Binder](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=red-amber.ipynb).
|
88
104
|
[](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=red-amber.ipynb)
|
89
105
|
|
90
106
|
Jupyter Notebookの環境を含めた他の多くのデータ処理用のライブラリーとともにRedAmberもパッケージングされたDocker Imageとして、[RubyData Docker Stacks](https://github.com/RubyData/docker-stacks) が利用できます(Thanks to Kenta Murata).
|
91
107
|
|
92
108
|
## 他のデータフレームライブラリとの比較表
|
93
109
|
|
94
|
-
RedAmberの基本的な機能をPython
|
110
|
+
RedAmberの基本的な機能をPython
|
95
111
|
[pandas](https://pandas.pydata.org/) や
|
96
112
|
R [Tidyverse](https://www.tidyverse.org/) や
|
97
113
|
Julia [Dataframes](https://dataframes.juliadata.org/stable/) と比較した表は [DataFrame_Comparison.md](doc/DataFrame_Comparison.md) にあります(Thanks to Benson Muite).
|
@@ -211,21 +227,23 @@ starwars
|
|
211
227
|
より詳しいデータフレームの使用例については、[DataFrame.md](doc/DataFrame.md) をご参照ください。
|
212
228
|
|
213
229
|
|
214
|
-
### 1次元のデータを保持する `Vector`
|
230
|
+
### 1次元のデータを保持する `Vector`
|
215
231
|
|
216
232
|
クラス`RedAmber::Vector` はデータフレームの中の列方向に格納された1次元のデータ列を保持します.
|
217
233
|
|
218
234
|
より詳しい使用例については [Vector.md](doc/Vector.md) をご参照ください。
|
219
235
|
|
220
|
-
## Jupyter notebook
|
221
236
|
|
222
|
-
Jupyter Notebook
|
223
|
-
([raw file](https://raw.githubusercontent.com/heronshoes/docker-stacks/RedAmber-binder/binder/examples_of_red_amber.ipynb)) があります。データのロードから各種のデータ処理まで100以上の使用例を集めています。[Binder](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=examples_of_red_amber.ipynb).
|
224
|
-
[](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=examples_of_red_amber.ipynb)で試すこともできます。
|
237
|
+
## Jupyter Notebook
|
225
238
|
|
239
|
+
このリポジトリでは [Quarto](https://quarto.org/) を使って、操作例を載せたJupyter Notebookのソースはqmd形式で保存し、gitの管理下に置いています。Notebookの生成は開発コンテナを使うと便利です。詳しくは[開発コンテナ(Development Containers)の利用](doc/Dev_Containers.ja.md)を利用して下さい。
|
226
240
|
|
227
241
|
## 開発
|
228
242
|
|
243
|
+
Dev Containersを利用してコンテナ上に開発環境を作成する方法がお勧めです。[開発コンテナ(Development Containers)の利用例](doc/Dev_Containers.ja.md)を参考にしてください。
|
244
|
+
|
245
|
+
または、ローカル環境に必要なライブラリをインストールした上で、下記を実行するとテストが走ります。
|
246
|
+
|
229
247
|
```shell
|
230
248
|
git clone https://github.com/red-data-tools/red_amber.git
|
231
249
|
cd red_amber
|
@@ -233,19 +251,20 @@ bundle install
|
|
233
251
|
bundle exec rake test
|
234
252
|
```
|
235
253
|
|
236
|
-
rake test
|
254
|
+
RedAmberの開発では、`rake test` は必須ですが、`rake rubocop` をパスすることはコントリビュートの際に必須ではありません。このプロジェクトではコードの書き方の好みを尊重します。ただしマージの際に書き方を統一させていただくことがあります。
|
237
255
|
|
238
256
|
## コミュニティ
|
239
257
|
|
240
258
|
このプロジェクトを支援して頂けると嬉しいです。支援の方法はいくつかあります。
|
241
259
|
|
242
|
-
- [discussions](https://github.com/heronshoes/red_amber/discussions)
|
243
|
-
- Q and A
|
244
|
-
-
|
260
|
+
- [discussions](https://github.com/heronshoes/red_amber/discussions)でお話ししましょう! [](https://github.com/red-data-tools/red_amber/discussions)
|
261
|
+
- Q and Aや使用方法、豆知識などを見流ことができます。
|
262
|
+
- 疑問に思っていることを質問できます。
|
245
263
|
- 新しいアイデアを共有する。アイデアはdiscussionからissueに昇格させて育てていくこともあります。漠然としたアイデアでもdiscussionから始めて大きくしていきましょう。
|
246
264
|
- [バグ報告や新しい機能の提案](https://github.com/red-data-tools/red_amber/issues)
|
247
265
|
- バグの修正や[プルリクエスト](https://github.com/red-data-tools/red_amber/pulls)
|
248
|
-
-
|
266
|
+
- ドキュメントを修正したり、不明確なところを直したり、新しく追加しましょう。
|
267
|
+
皆さんのご参加をお待ちしています。
|
249
268
|
|
250
269
|
## License
|
251
270
|
|