サーチ…
シンプルシリーズの作成例
シリーズとは1次元のデータ構造です。これは、スーパーチャージされた配列、または辞書のようなビットです。
import pandas as pd
s = pd.Series([10, 20, 30])
>>> s
0 10
1 20
2 30
dtype: int64
シリーズのすべての値にはインデックスがあります。既定では、インデックスは0から系列長マイナス1までの整数です。上記の例では、値の左側にインデックスが表示されています。
独自のインデックスを指定することができます:
s2 = pd.Series([1.5, 2.5, 3.5], index=['a', 'b', 'c'], name='my_series')
>>> s2
a 1.5
b 2.5
c 3.5
Name: my_series, dtype: float64
s3 = pd.Series(['a', 'b', 'c'], index=list('ABC'))
>>> s3
A a
B b
C c
dtype: object
日時付きシリーズ
import pandas as pd
import numpy as np
np.random.seed(0)
rng = pd.date_range('2015-02-24', periods=5, freq='T')
s = pd.Series(np.random.randn(len(rng)), index=rng)
print (s)
2015-02-24 00:00:00 1.764052
2015-02-24 00:01:00 0.400157
2015-02-24 00:02:00 0.978738
2015-02-24 00:03:00 2.240893
2015-02-24 00:04:00 1.867558
Freq: T, dtype: float64
rng = pd.date_range('2015-02-24', periods=5, freq='T')
s1 = pd.Series(rng)
print (s1)
0 2015-02-24 00:00:00
1 2015-02-24 00:01:00
2 2015-02-24 00:02:00
3 2015-02-24 00:03:00
4 2015-02-24 00:04:00
dtype: datetime64[ns]
パンダのシリーズについての簡単なヒント
以下のシリーズがあるとしましょう:
>>> import pandas as pd
>>> s = pd.Series([1, 4, 6, 3, 8, 7, 4, 5])
>>> s
0 1
1 4
2 6
3 3
4 8
5 7
6 4
7 5
dtype: int64
以下は、Seriesで作業しているときに便利ないくつかの簡単なものです。
sの長さを取得するには:
>>> len(s)
8
s内の要素にアクセスするには:
>>> s[4]
8
インデックスを使ってs内の要素にアクセスするには:
>>> s.loc[2]
6
s内のサブシリーズにアクセスするには:
>>> s[1:3]
1 4
2 6
dtype: int64
5より大きい値を持つsのサブ系列を取得するには:
>>> s[s > 5]
2 6
4 8
5 7
dtype: int64
最小、最大、平均、および標準偏差を取得するには:
>>> s.min()
1
>>> s.max()
8
>>> s.mean()
4.75
>>> s.std()
2.2519832529192065
Series型をfloatに変換するには:
>>> s.astype(float)
0 1.0
1 4.0
2 6.0
3 3.0
4 8.0
5 7.0
6 4.0
7 5.0
dtype: float64
numpy配列としてsの値を取得するには:
>>> s.values
array([1, 4, 6, 3, 8, 7, 4, 5])
sのコピーを作るには:
>>> d = s.copy()
>>> d
0 1
1 4
2 6
3 3
4 8
5 7
6 4
7 5
dtype: int64
シリーズに関数を適用する
パンダは、シリーズのあらゆる要素に機能を適用し、新しいシリーズを得る効果的な方法を提供します。以下のシリーズがあるとしましょう:
>>> import pandas as pd
>>> s = pd.Series([3, 7, 5, 8, 9, 1, 0, 4])
>>> s
0 3
1 7
2 5
3 8
4 9
5 1
6 0
7 4
dtype: int64
正方形の関数:
>>> def square(x):
... return x*x
私たちは単純にsのすべての要素に正方形を適用し、新しいシリーズを取得することができます:
>>> t = s.apply(square)
>>> t
0 9
1 49
2 25
3 64
4 81
5 1
6 0
7 16
dtype: int64
場合によっては、ラムダ式を使用する方が簡単です。
>>> s.apply(lambda x: x ** 2)
0 9
1 49
2 25
3 64
4 81
5 1
6 0
7 16
dtype: int64
あるいは組み込み関数を使うことができます:
>>> q = pd.Series(['Bob', 'Jack', 'Rose'])
>>> q.apply(str.lower)
0 bob
1 jack
2 rose
dtype: object
Seriesのすべての要素が文字列の場合、文字列メソッドを適用する簡単な方法があります。
>>> q.str.lower()
0 bob
1 jack
2 rose
dtype: object
>>> q.str.len()
0 3
1 4
2 4
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow