PadasでのDataFrame操作

PadasでのDataFrame操作


1算術演算

  • add(other)

たとえば、数学演算を実行し、特定の数値を追加します

data['open'].add(1)

2018-02-27    24.53
2018-02-26    23.80
2018-02-23    23.88
2018-02-22    23.25
2018-02-14    22.49
  • サブ(その他) '

2論理演算

2.1論理演算記号

  • たとえば、data ["open"]> 23で日付データをフィルタリングします
    • data ["open"]> 23は論理結果を返します
    • data["open"] > 23
      
      2018-02-27     True
      2018-02-26    False
      2018-02-23    False
      2018-02-22    False
      2018-02-14    False
      
# 逻辑判断的结果可以作为筛选的依据
data[data["open"] > 23].head()

  • 複数の論理的判断を完了し、
data[(data["open"] > 23) & (data["open"] < 24)].head()

2.2論理演算関数

  • query(expr)
    • expr:クエリ文字列

クエリを使用して、プロセスをより便利でシンプルにします

data.query("open<24 & open>23").head()
  • isin(values)

たとえば、「open」が23.53と23.85であるかどうかを判別します。

# 可以指定值进行一个判断,从而进行筛选操作
data[data["open"].isin([23.53, 23.85])]

3統計演算

3.1説明

包括的な分析:直接統計の多くを描画する能力、count、  mean、  std、  min、  max 、など

# 计算平均值、标准差、最大值、最小值
data.describe()

3.2統計関数

Numpyが詳細に紹介されました。ここでは、最小(最小)、最大(最大)、平均(平均)、中央値(中央値)、変数(分散)、標準偏差(標準偏差)、モード(モード))の結果を示します。

count 非NA観測の数
sum 値の合計
mean 値の平均
median 値の算術中央値
min 最小
max 最大
mode モード   [発生数が最も多い数]
abs 絶対値
prod 値の積
std ベッセル補正されたサンプルの標準偏差
var 不偏分散
idxmax 最大のインデックスラベルを計算します
idxmin  【最小值的索引值,不是索引】 最小値でインデックスラベルを計算する

単一の関数の統計を実行する場合、行「インデックス」(軸= 1)を指定する場合、軸はデフォルトの列「列」(軸= 0、デフォルト)に従います。

  • max()、min()
# 使用统计函数:0 代表列求结果, 1 代表行求统计结果
data.max(0)

open                   34.99
high                   36.35
close                  35.21
low                    34.01
volume             501915.41
price_change            3.03
p_change               10.03
turnover               12.56
my_price_change         3.41
dtype: float64
  • std()、var()
# 方差
data.var(0)

open               1.545255e+01
high               1.662665e+01
close              1.554572e+01
low                1.437902e+01
volume             5.458124e+09
price_change       8.072595e-01
p_change           1.664394e+01
turnover           4.323800e+00
my_price_change    6.409037e-01
dtype: float64

# 标准差
data.std(0)

open                   3.930973
high                   4.077578
close                  3.942806
low                    3.791968
volume             73879.119354
price_change           0.898476
p_change               4.079698
turnover               2.079375
my_price_change        0.800565
dtype: float64
  • median():中位数

中央値はデータを小さいものから大きいものへと並べたもので、中央の数字が中央値です。真ん中の数字がない場合は、真ん中の2つの数字の平均を取ります。

df = pd.DataFrame({'COL1' : [2,3,4,5,4,2],
                   'COL2' : [0,1,2,3,4,2]})

df.median()

COL1    3.5
COL2    2.0
dtype: float64
  • idxmax()、idxmin()
# 求出最大值的位置
data.idxmax(axis=0)

open               2015-06-15
high               2015-06-10
close              2015-06-12
low                2015-06-12
volume             2017-10-26
price_change       2015-06-09
p_change           2015-08-28
turnover           2017-10-26
my_price_change    2015-07-10
dtype: object


# 求出最小值的位置
data.idxmin(axis=0)

open               2015-03-02
high               2015-03-02
close              2015-09-02
low                2015-03-02
volume             2016-07-06
price_change       2015-06-15
p_change           2015-09-01
turnover           2016-07-06
my_price_change    2015-06-15
dtype: object

3.3累積統計関数

関数 効果
cumsum 最初の1/2/3 /…/ nの数の合計を計算します
cummax 最初の1/2/3 /…/ n数の最大値を計算します
cummin 最初の1/2/3 /…/ n数の最小値を計算します
cumprod 最初の1/2/3 /…/ nの数の積を計算します

では、これらの累積統計関数をどのように使用しますか?

上記の関数は、シリーズおよびデータフレームで動作できます

これが最初から最後までの時間の蓄積です

  • ソート
# 排序之后,进行累计求和
data = data.sort_index()
  • p_changeの合計
stock_rise = data['p_change']
# plot方法集成了前面直方图、条形图、饼图、折线图
stock_rise.cumsum()

2015-03-02      2.62
2015-03-03      4.06
2015-03-04      5.63
2015-03-05      7.65
2015-03-06     16.16
2015-03-09     16.37
2015-03-10     18.75
2015-03-11     16.36
2015-03-12     15.03
2015-03-13     17.58
2015-03-16     20.34
2015-03-17     22.42
2015-03-18     23.28
2015-03-19     23.74
2015-03-20     23.48
2015-03-23     23.74

では、この連続的な合計の結果をより適切に表示するにはどうすればよいでしょうか。

 

プロット関数を使用する場合は、matplotlibをインポートする必要があります。

import matplotlib.pyplot as plt
# plot显示图形
stock_rise.cumsum().plot()
# 需要调用show,才能显示出结果
plt.show()

4カスタム計算

  • apply(func、axis = 0)
    • func:カスタム関数
    • axis = 0:デフォルトは列、axis = 1は行操作です
  • 列を定義し、最大-最小関数
data[['open', 'close']].apply(lambda x: x.max() - x.min(), axis=0)

open     22.74
close    22.85
dtype: float64

5まとめ

  • 算術演算
  • 論理演算
    • 1.論理演算記号
    • 2.論理演算機能
      • Object.query()
      • Object.isin()
  • 統計計算
    • 1.Object.describe()
    • 2.統計関数
    • 3.累積統計関数
  • カスタム計算
    • apply(func、axis = 0)

おすすめ

転載: blog.csdn.net/weixin_44799217/article/details/113925519