Pythonのパンダの使用状況(1)

パンダのPythonの使用法

インポート

import pandas as pd

シリーズ

一連の機能は、アレイ又はリスト1つのカスタム添字(インデックス)からパンダを使用して作成され、自動的に参照インデックス一次元アレイを維持します

a = pd.Series([0.25, 0.5, 0.75, 1.0])
print(a)
b = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd']) # 自定义下标
print(b)
c = pd.Series({'a': 0.25, 'b': 0.5, 'c': 0.75, 'd': 1.0}) # 从dict创建
print(c)
'''
输出
0    0.25
1    0.50
2    0.75
3    1.00
dtype: float64
a    0.25
b    0.50
c    0.75
d    1.00
dtype: float64
a    0.25
b    0.50
c    0.75
d    1.00
dtype: float64
'''

前記指標値が、オブジェクトが反復することができるものであり、辞書などの添字としてアクセスすることができます

print(a.values)
print(b.index)
print(c['b'])
'''
输出
[0.25 0.5  0.75 1.  ]
Index(['a', 'b', 'c', 'd'], dtype='object')
0.5
'''

ここではいくつかの小さなトリックです

print(b[b > 0.7] * 2)
print(c.sort_values) # 按value排序
print(b[1:3]) # 切片的下标对应的是自动维护的标号索引
'''
输出
c    1.5
d    2.0
dtype: float64
<bound method Series.sort_values of a    0.25
b    0.50
c    0.75
d    1.00
dtype: float64>
b    0.50
c    0.75
dtype: float64
'''

それぞれ、自動保守およびILOC LOCでカスタムインデックスとインデックスラベルにアクセスするには

data = pd.Series(['a', 'b', 'c'], index=[1, 3, 5])
print(data.loc[1])
print(data.iloc[1])
''' 
输出
a
b
'''

古いインデックスが削除される新しいインデックスで発生していなかった場合シリーズは、インデックスを更新することができ、新しいインデックスは古いインデックスに表示されていない場合、それはNaN(非数)が表示されます、それは行方不明を表します。

sdata = {'a': 1, 'b': 3, 'c': 5, 'd': 7}
obj1 = pd.Series(sdata)
print(obj1)
states = ['b', 'c', 'd', 'e']
obj2 = pd.Series(sdata, index=states)
print(obj2)
'''
输出
a    1
b    3
c    5
d    7
dtype: int64
b    3.0
c    5.0
d    7.0
e    NaN
dtype: float64
'''

インデックスデータに基づいてシリーズは、自動的にラベル操作を揃えます

print(obj1 + obj2)
'''
输出
a     NaN
b     6.0
c    10.0
d    14.0
e     NaN
dtype: float64
'''

データフレーム

複数のシリーズとの組み合わせによって生成されたデータフレーム

tag1_dict = {'a': 1, 'b': 2, 'c': 3}
tag1 = pd.Series(tag1_dict)
tag2_dict = {'b': 11, 'c': 12, 'd': 13}
tag2 = pd.Series(tag2_dict)
df = pd.DataFrame({'tag1': tag1, 'tag2': tag2})
print(df)
'''
输出
   tag1  tag2
a   1.0   NaN
b   2.0  11.0
c   3.0  12.0
d   NaN  13.0
'''

データフレームと辞書のリストを生成します

data = [{'a': i, 'b': i * 2} for i in range(3)]
print(pd.DataFrame(data))
'''
输出
   a  b
0  0  0
1  1  2
2  2  4
'''

numpyのデータフレームを有する二次元アレイを生成し、行と列のインデックスをカスタマイズ

print(pd.DataFrame(np.random.rand(3, 2), columns=['a', 'b'], index=['c', 'd', 'e']))
'''
输出
          a         b
c  0.341337  0.379886
d  0.968444  0.595278
e  0.207694  0.440617
'''

得ます

print(df.tag1)
print(df['tag1'])
'''
输出
a    1.0
b    2.0
c    3.0
d    NaN
Name: tag1, dtype: float64
a    1.0
b    2.0
c    3.0
d    NaN
Name: tag1, dtype: float64
'''

新しいダイレクトを追加します

df['tag3'] = df['tag1'] + df['tag2']
print(df)
'''
输出
   tag1  tag2  tag3
a   1.0   NaN   NaN
b   2.0  11.0  13.0
c   3.0  12.0  15.0
d   NaN  13.0   NaN
'''

為替の仲間入り

s = df.T
print(s)
'''
输出
        a     b     c     d
tag1  1.0   2.0   3.0   NaN
tag2  NaN  11.0  12.0  13.0
tag3  NaN  13.0  15.0   NaN
'''

フィルタ

print(df.loc[df.tag2 > 11, ['tag1', 'tag2']])
'''
输出
   tag1  tag2
c   3.0  12.0
d   NaN  13.0
'''

割り当て

df.iloc[1, 1] = 100
print(df)
'''
输出
   tag1   tag2  tag3
a   1.0    NaN   NaN
b   2.0  100.0  13.0
c   3.0   12.0  15.0
d   NaN   13.0   NaN
'''

データフレームを直接numpyの関数に、アクションが機能に対応することが可能な全ての値

df = pd.DataFrame(np.random.randint(0, 10, (2, 3)), columns=['a', 'b', 'c'])
print(np.sin(df * np.pi / 4))
'''
输出
     a         b         c
0 -1.0  0.707107 -1.000000
1 -1.0  0.707107 -0.707107
'''

自動インデックス作成とその補間のデータフレームの操作

df1 = pd.DataFrame(np.random.randint(0, 3, (2, 2)), columns=['a', 'b'])
df2 = pd.DataFrame(np.random.randint(0, 3, (2, 2)), columns=['b', 'c'])
print(df1 + df2)
print(df1.add(df2, fill_value=100))
'''
输出
    a  b   c
0 NaN  3 NaN
1 NaN  2 NaN
       a  b      c
0  100.0  3  102.0
1  101.0  2  101.0
'''

放送に対応したシリーズ、行または列で計算DATAFRAME

df = pd.DataFrame(np.random.randint(0, 10, (2, 2)), columns=['a', 'b'])
print(df)
print(df - df.iloc[1])
'''
输出
   a  b
0  3  8
1  4  5
   a  b
0 -1  3
1  0  0
'''

おすすめ

転載: www.cnblogs.com/beginend/p/11741433.html