In [1]:
require 'mikon'


Out[1]:
Out[1]:
true

In [2]:
path = File.expand_path("../data/gdp.csv", __FILE__)
df1 = Mikon::DataFrame.from_csv(path)


Out[2]:
country_or_areayearvaluevalue_footnotes
0Afghanistan20123.55234032198702
1Afghanistan20114.78662767565472
2Afghanistan20103.66803325962668
3Afghanistan20092.04265078269294
4Afghanistan20082.21057537126712
5Afghanistan20072.17127326265904
6Afghanistan20061.76635442957503
7Afghanistan20051.77275777834904
8Afghanistan20042.15363123609057
9Afghanistan20032.08503748890737
10Albania20121.45505861992816
11Albania20111.51924820573228
12Albania20101.60235862337985
13Albania20092.05325803649001
14Albania20081.97150735294118
15Albania20071.82014462809917
16Albania20061.54374966770579
17Albania20051.31487718388222
18Albania20041.35350745492471
19Albania20031.35922390513751
20Albania20021.31579371172281
21Albania20011.29960736181529
22Albania20001.2278986601211
23Albania19991.24206452644451
24Albania19981.2288819931238
25Albania19971.37870662927084
26Albania19961.51709550445667
27Albania19952.09971303737436
28Albania19942.50038576236814
29Albania19933.19929790315127
30Albania19924.64945888260734
31Albania19905.88830083175259
32Albania19895.16567637335278
33Albania19885.61500470366886
34Algeria20124.56352306707531
35Algeria20114.3457876421571
36Algeria20103.5191406518711
37Algeria20093.85231767018087
38Algeria20083.02434776522206
39Algeria20072.91888501928132
40Algeria20062.64654950286156
41Algeria20052.82994500755648
42Algeria20043.28502466053376
43Algeria20033.25570346413132
44Algeria20023.69242473417803
45Algeria20013.83240278099018
46Algeria20003.44367652668923
47Algeria19993.76752507239682
48Algeria19983.95689793175291
49Algeria19973.63283228608796
50Algeria19963.09338520538001
...............
4127Zimbabwe19884.95503147380905

In [3]:
df2 = df1.select{year==2012}
df2[:value].plot


Out[3]:

In [4]:
df3 = df1.select{country_or_area[0] == "A"}


Out[4]:
country_or_areayearvaluevalue_footnotes
0Afghanistan20123.55234032198702
1Afghanistan20114.78662767565472
2Afghanistan20103.66803325962668
3Afghanistan20092.04265078269294
4Afghanistan20082.21057537126712
5Afghanistan20072.17127326265904
6Afghanistan20061.76635442957503
7Afghanistan20051.77275777834904
8Afghanistan20042.15363123609057
9Afghanistan20032.08503748890737
10Albania20121.45505861992816
11Albania20111.51924820573228
12Albania20101.60235862337985
13Albania20092.05325803649001
14Albania20081.97150735294118
15Albania20071.82014462809917
16Albania20061.54374966770579
17Albania20051.31487718388222
18Albania20041.35350745492471
19Albania20031.35922390513751
20Albania20021.31579371172281
21Albania20011.29960736181529
22Albania20001.2278986601211
23Albania19991.24206452644451
24Albania19981.2288819931238
25Albania19971.37870662927084
26Albania19961.51709550445667
27Albania19952.09971303737436
28Albania19942.50038576236814
29Albania19933.19929790315127
30Albania19924.64945888260734
31Albania19905.88830083175259
32Albania19895.16567637335278
33Albania19885.61500470366886
34Algeria20124.56352306707531
35Algeria20114.3457876421571
36Algeria20103.5191406518711
37Algeria20093.85231767018087
38Algeria20083.02434776522206
39Algeria20072.91888501928132
40Algeria20062.64654950286156
41Algeria20052.82994500755648
42Algeria20043.28502466053376
43Algeria20033.25570346413132
44Algeria20023.69242473417803
45Algeria20013.83240278099018
46Algeria20003.44367652668923
47Algeria19993.76752507239682
48Algeria19983.95689793175291
49Algeria19973.63283228608796
50Algeria19963.09338520538001
...............
221Azerbaijan19922.07464575423746

In [5]:
df4 = df3.pivot(column: :country_or_area, row: :year, value: :value)


Out[5]:
AfghanistanAlbaniaAlgeriaAngolaArab WorldArgentinaArmeniaAustraliaAustriaAzerbaijan
1988NaN5.615004703668861.74535042784505NaN8.128418839243731.98087554699177NaN2.301605886195291.2988091288345NaN
1989NaN5.165676373352781.53555395926921NaN7.910344543679981.77556383818821NaN2.164363391370261.23237184250604NaN
1990NaN5.888300831752591.4573587554321NaN10.14833730630611.36821335532423NaN2.12241771276071.19733665316345NaN
1991NaNNaN1.231497962486097.0562510496862211.65771437574311.42013727576134NaN2.169879654340121.15930695287425NaN
1992NaN4.649458882607342.194237699089357.565727255532448.94071484828251.340463621889892.095489752964842.213472158578241.108381664513622.07464575423746
1993NaN3.199297903151272.5557461473852917.52184611627748.141900481520441.340352363676562.121652479001912.227961672669841.122589850446675.09288142498822
1994NaN2.500385762368143.137780742008125.707519838770637.550265126896281.45703853325047NaN2.182492572081291.105737476812933.68316850709437
1995NaN2.099713037374362.953883203415834.706501677066356.867136984571261.473074534432294.059311979968862.083299759882681.072117837032132.73690130284
1996NaN1.517095504456673.093385205380012.453641143612216.225132306694951.24122840458243.281866892731561.978837277352491.047296914479422.25423034135488
1997NaN1.378706629270843.632832286087965.993886236039246.366128442807271.140139111312953.903846066295951.919990233077551.041661201788292.32404979925782
1998NaN1.22888199312383.956897931752912.64242638729367.264862552346361.136317071600193.527373826855271.919758375824011.012446922417982.41235591259715
1999NaN1.242064526444513.7675250723968217.33737114903036.340415155695151.220359547549933.69641330573641.93781736505751.00067021819952.62510993144516
2000NaN1.22789866012113.443676526689236.392766791649266.215717970108931.148823687231433.558483186360871.89506024587751.002525058425632.26786206311863
2001NaN1.299607361815293.832402780990184.524358888503326.613655684364761.18423464370153.129579561396231.926453009287090.9332359412849032.31394386334562
2002NaN1.315793711722813.692424734178033.510216324871226.011310893269981.091880478597482.700973532147491.937484436014140.9064560319806032.24332117101365
20032.085037488907371.359223905137513.255703464131324.722152615835675.600345936859891.060893645944042.726753396300611.911014113487220.9382390771662.42076540964108
20042.153631236090571.353507454924713.285024660533764.162419771897745.175683240165530.9572349425379792.741168588996311.89743321293340.9194409918067072.62593343727653
20051.772757778349041.314877183882222.829945007556484.834841989718154.748668247064920.9277383909331672.871307165708181.88225662318710.8807575970215452.29986025154722
20061.766354429575031.543749667705792.646549502861564.71484478493684.47508874057340.8622655672513282.947831514148571.900563636217450.8126331384065143.41935418481476
20072.171273262659041.820144628099172.918885019281323.36223166053214.580563355731130.8750014157914443.041961863451221.895960779209510.9331443187537212.86313710971245
20082.210575371267121.971507352941183.024347765222063.752277362311474.194251949199270.8490854397177513.391039293569731.89003684950750.9047045645333853.29121114577001
20092.042650782692942.053258036490013.852317670180874.391622455315165.376283860261550.9658142639298374.169782066817731.938223365672930.8692093394179533.32570256871199
20103.668033259626681.602358623379853.51914065187114.248274995853975.084248206682030.9386164014559934.277206072349461.958578210420830.8521374767488332.79053338043094
20114.786627675654721.519248205732284.34578764215713.496897617872444.892439720700950.9041150855864083.864534206103971.836684977719020.8197421663928094.66955954072424
20123.552340321987021.455058619928164.563523067075313.633899793677115.108234138807410.9100629563027953.902311339006091.713584714246580.8185567072634314.63746643207704

In [6]:
df4.fillna(0)


Out[6]:
AfghanistanAlbaniaAlgeriaAngolaArab WorldArgentinaArmeniaAustraliaAustriaAzerbaijan
198805.615004703668861.7453504278450508.128418839243731.9808755469917702.301605886195291.29880912883450
198905.165676373352781.5355539592692107.910344543679981.7755638381882102.164363391370261.232371842506040
199005.888300831752591.4573587554321010.14833730630611.3682133553242302.12241771276071.197336653163450
1991001.231497962486097.0562510496862211.65771437574311.4201372757613402.169879654340121.159306952874250
199204.649458882607342.194237699089357.565727255532448.94071484828251.340463621889892.095489752964842.213472158578241.108381664513622.07464575423746
199303.199297903151272.5557461473852917.52184611627748.141900481520441.340352363676562.121652479001912.227961672669841.122589850446675.09288142498822
199402.500385762368143.137780742008125.707519838770637.550265126896281.4570385332504702.182492572081291.105737476812933.68316850709437
199502.099713037374362.953883203415834.706501677066356.867136984571261.473074534432294.059311979968862.083299759882681.072117837032132.73690130284
199601.517095504456673.093385205380012.453641143612216.225132306694951.24122840458243.281866892731561.978837277352491.047296914479422.25423034135488
199701.378706629270843.632832286087965.993886236039246.366128442807271.140139111312953.903846066295951.919990233077551.041661201788292.32404979925782
199801.22888199312383.956897931752912.64242638729367.264862552346361.136317071600193.527373826855271.919758375824011.012446922417982.41235591259715
199901.242064526444513.7675250723968217.33737114903036.340415155695151.220359547549933.69641330573641.93781736505751.00067021819952.62510993144516
200001.22789866012113.443676526689236.392766791649266.215717970108931.148823687231433.558483186360871.89506024587751.002525058425632.26786206311863
200101.299607361815293.832402780990184.524358888503326.613655684364761.18423464370153.129579561396231.926453009287090.9332359412849032.31394386334562
200201.315793711722813.692424734178033.510216324871226.011310893269981.091880478597482.700973532147491.937484436014140.9064560319806032.24332117101365
20032.085037488907371.359223905137513.255703464131324.722152615835675.600345936859891.060893645944042.726753396300611.911014113487220.9382390771662.42076540964108
20042.153631236090571.353507454924713.285024660533764.162419771897745.175683240165530.9572349425379792.741168588996311.89743321293340.9194409918067072.62593343727653
20051.772757778349041.314877183882222.829945007556484.834841989718154.748668247064920.9277383909331672.871307165708181.88225662318710.8807575970215452.29986025154722
20061.766354429575031.543749667705792.646549502861564.71484478493684.47508874057340.8622655672513282.947831514148571.900563636217450.8126331384065143.41935418481476
20072.171273262659041.820144628099172.918885019281323.36223166053214.580563355731130.8750014157914443.041961863451221.895960779209510.9331443187537212.86313710971245
20082.210575371267121.971507352941183.024347765222063.752277362311474.194251949199270.8490854397177513.391039293569731.89003684950750.9047045645333853.29121114577001
20092.042650782692942.053258036490013.852317670180874.391622455315165.376283860261550.9658142639298374.169782066817731.938223365672930.8692093394179533.32570256871199
20103.668033259626681.602358623379853.51914065187114.248274995853975.084248206682030.9386164014559934.277206072349461.958578210420830.8521374767488332.79053338043094
20114.786627675654721.519248205732284.34578764215713.496897617872444.892439720700950.9041150855864083.864534206103971.836684977719020.8197421663928094.66955954072424
20123.552340321987021.455058619928164.563523067075313.633899793677115.108234138807410.9100629563027953.902311339006091.713584714246580.8185567072634314.63746643207704

In [7]:
df4.plot


Out[7]:

In [5]:
df1.map{year + 2}


Out[5]:
new_series
02014
12013
22012
32011
......
41271990

In [7]:
df1[10..20]


Out[7]:
country_or_areayearvaluevalue_footnotes
10Albania20121.45505861992816
11Albania20111.51924820573228
12Albania20101.60235862337985
13Albania20092.05325803649001
14Albania20081.97150735294118
15Albania20071.82014462809917
16Albania20061.54374966770579
17Albania20051.31487718388222
18Albania20041.35350745492471
19Albania20031.35922390513751
20Albania20021.31579371172281

In [8]:
df1.tail(2)


Out[8]:
country_or_areayearvaluevalue_footnotes
4126Zimbabwe19894.55111490043303
4127Zimbabwe19884.95503147380905

In [10]:
df1.head(2)


Out[10]:
country_or_areayearvaluevalue_footnotes
0Afghanistan20123.55234032198702
1Afghanistan20114.78662767565472

In [11]:
df1.insert_column(:value_2){value*2}


Out[11]:
country_or_areayearvaluevalue_footnotesvalue_2
0Afghanistan20123.552340321987027.10468064397404
1Afghanistan20114.786627675654729.57325535130944
2Afghanistan20103.668033259626687.33606651925336
3Afghanistan20092.042650782692944.08530156538588
4Afghanistan20082.210575371267124.42115074253424
5Afghanistan20072.171273262659044.34254652531808
6Afghanistan20061.766354429575033.53270885915006
7Afghanistan20051.772757778349043.54551555669808
8Afghanistan20042.153631236090574.30726247218114
9Afghanistan20032.085037488907374.17007497781474
10Albania20121.455058619928162.91011723985632
11Albania20111.519248205732283.03849641146456
12Albania20101.602358623379853.2047172467597
13Albania20092.053258036490014.10651607298002
14Albania20081.971507352941183.94301470588236
15Albania20071.820144628099173.64028925619834
16Albania20061.543749667705793.08749933541158
17Albania20051.314877183882222.62975436776444
18Albania20041.353507454924712.70701490984942
19Albania20031.359223905137512.71844781027502
20Albania20021.315793711722812.63158742344562
21Albania20011.299607361815292.59921472363058
22Albania20001.22789866012112.4557973202422
23Albania19991.242064526444512.48412905288902
24Albania19981.22888199312382.4577639862476
25Albania19971.378706629270842.75741325854168
26Albania19961.517095504456673.03419100891334
27Albania19952.099713037374364.19942607474872
28Albania19942.500385762368145.00077152473628
29Albania19933.199297903151276.39859580630254
30Albania19924.649458882607349.29891776521468
31Albania19905.8883008317525911.77660166350518
32Albania19895.1656763733527810.33135274670556
33Albania19885.6150047036688611.23000940733772
34Algeria20124.563523067075319.12704613415062
35Algeria20114.34578764215718.6915752843142
36Algeria20103.51914065187117.0382813037422
37Algeria20093.852317670180877.70463534036174
38Algeria20083.024347765222066.04869553044412
39Algeria20072.918885019281325.83777003856264
40Algeria20062.646549502861565.29309900572312
41Algeria20052.829945007556485.65989001511296
42Algeria20043.285024660533766.57004932106752
43Algeria20033.255703464131326.51140692826264
44Algeria20023.692424734178037.38484946835606
45Algeria20013.832402780990187.66480556198036
46Algeria20003.443676526689236.88735305337846
47Algeria19993.767525072396827.53505014479364
48Algeria19983.956897931752917.91379586350582
49Algeria19973.632832286087967.26566457217592
50Algeria19963.093385205380016.18677041076002
..................
4127Zimbabwe19884.955031473809059.9100629476181

In [8]:
2*df1[:value]


Out[8]:
value
07.10468064397404
19.57325535130944
27.33606651925336
34.08530156538588
......
41279.9100629476181

In [7]:
df1[:value] - df1[:value]


Out[7]:
value
00.0
10.0
20.0
30.0
......
41270.0

In [13]:
df1.any?{value > 5}


Out[13]:
true

In [14]:
df1.all?{value > 1}


Out[14]:
false

In [9]:
df = Mikon::DataFrame.new({a: [1,2,3], b: [2,3,4]})


Out[9]:
ab
012
123
234

In [10]:
df[:b] - df[:a]


Out[10]:
b
01
11
21

In [11]:
2 * df[:a]


Out[11]:
a
02
14
26

In [13]:
df[:a]%2


Out[13]:
a
01
10
21

In [16]:
df[1..2]


Out[16]:
ab
123
234

In [17]:
df.select{a**2 < b}


Out[17]:
ab
012

In [9]:
df2 = Mikon::DataFrame.new({a: [1,2,3,4], b: [2,3,4,5]}, index: [:a, :b, :c, :d])


Out[9]:
ab
a12
b23
c34
d45

In [10]:
df2[:a .. :c]


Out[10]:
ab
a12
b23
c34

In [20]:
[1,2].each{|val| p val}


1
2
Out[20]:
[1, 2]

In [21]:
df = Mikon::DataFrame.new({a: [1,2,3,4,5,6,7,8,9], b: [1,2,3,4,5,6,7,8,9]})


Out[21]:
ab
011
122
233
344
455
566
677
788
899

In [14]:
df.map{a+b}.name(:c)


Out[14]:
c
03
15
27

In [23]:
hoge = []
df.each{hoge.push(a*b)}
hoge


Out[23]:
[1, 4, 9, 16, 25, 36, 49, 64, 81]