03探索データ

20905 ワード

numpy、pandasパッケージ、およびデータのインポート
import pandas as pd
text = pd.read_csv('train_chinese.csv')
print(text.head())
#      ID              ...                     
# 0     1     0     3  ...   7.2500   NaN     S
# 1     2     1     1  ...  71.2833   C85     C
# 2     3     1     3  ...   7.9250   NaN     S
# 3     4     1     1  ...  53.1000  C123     S
# 4     5     0     3  ...   8.0500   NaN     S
# 
# [5 rows x 12 columns]

サンプルデータをPandasで並べ替え、昇順を要求
pd.DataFrame() :    DataFrame   
np.arange(8).reshape((2, 4)) :2*4,01234567
index=[21] :DataFrame       
columns=['d', 'a', 'b', 'c'] :DataFrame       
frame = pd.DataFrame(np.arange(8).reshape((2, 4)),
                     index=['2', '1'],
                     columns=['d', 'a', 'b', 'c'])
print(frame)
#    d  a  b  c
# 2  0  1  2  3
# 1  4  5  6  7
pd.DataFrame():DataFrameオブジェクトを作成するnp.arange(8).reshape((2, 4)):2次元配列を生成する(2*4)、第1列:0,1,2,3第2列:4,5,6,7 index=['2, 1]:DataFrameオブジェクトのインデックス列columns=['d', 'a', 'b', 'c']:DataFrameオブジェクトのインデックス行
print(frame.sort_values(by='c', ascending=False))
#    d  a  b  c
# 1  4  5  6  7
# 2  0  1  2  3
print(frame)
#    d  a  b  c
# 2  0  1  2  3
# 1  4  5  6  7
sort_valuesという関数ではbyパラメータが配列する列を指し、ascendingパラメータが配列を指す方法(昇順か降順か)が見られます.
#         
print(frame.sort_index())
#    d  a  b  c
# 1  4  5  6  7
# 2  0  1  2  3

#         
print(frame.sort_index(axis=1))
#    d  a  b  c
# 2  0  1  2  3
# 1  4  5  6  7

#         
frame.sort_index(axis=1, ascending=False)
#    d  a  b  c
# 1  4  5  6  7
# 2  0  1  2  3
#              
frame.sort_values(by=['a', 'c'])
#    a  b  c  d
# 2  1  2  3  0
# 1  5  6  7  4

タイタニック号のデータ(trian.csv)を運賃と年齢の2列で総合的に並べ替え(降順に並べ替え)、データから何を見つけることができますか?
print(text.sort_values(by=['  ', '  '], ascending=False).head(3))
#        ID              ...                             
# 679   680     1     1  ...  512.3292  B51 B53 B55     C
# 258   259     1     1  ...  512.3292          NaN     C
# 737   738     1     1  ...  512.3292         B101     C
#
# [3 rows x 12 columns]

Pandasで算術計算を行い、二つのデータFrameデータの加算結果を計算する
'''  Pandas      ,    DataFrame      '''
frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3),
                     columns=['a', 'b', 'c'],
                     index=['one', 'two', 'three'])
print(frame1_a)
#          a    b    c
# one    0.0  1.0  2.0
# two    3.0  4.0  5.0
# three  6.0  7.0  8.0

frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3),
                     columns=['a', 'e', 'c'],
                     index=['first', 'one', 'two', 'second'])
print(frame1_b)
#           a     e     c
# first   0.0   1.0   2.0
# one     3.0   4.0   5.0
# two     6.0   7.0   8.0
# second  9.0  10.0  11.0

print(frame1_a + frame1_b)
#           a   b     c   e
# first   NaN NaN   NaN NaN
# one     3.0 NaN   7.0 NaN
# second  NaN NaN   NaN NaN
# three   NaN NaN   NaN NaN
# two     9.0 NaN  13.0 NaN


2つのDataFrameが加算されると、新しいDataFrameが返され、対応する行と列の値が加算され、対応していないものは空の値NaNになります.
タイタニック号のデータを通じてどのように船の上で最大の家族が何人いるかを計算します
'''                          '''
print(max(text['      '] + text['      ']))
# 10

Pandas describe()関数を使用してデータの基本統計を表示することを学ぶ
'''    Pandas describe()            '''
frame2 = pd.DataFrame([[1.4, np.nan],
                       [7.1, -4.5],
                       [np.nan, np.nan],
                       [0.75, -1.3]
                      ], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
print(frame2)
#     one  two
# a  1.40  NaN
# b  7.10 -4.5
# c   NaN  NaN
# d  0.75 -1.3
print(frame2.describe())
#             one       two
# count  3.000000  2.000000
# mean   3.083333 -2.900000
# std    3.493685  2.262742
# min    0.750000 -4.500000
# 25%    1.075000 -3.700000
# 50%    1.400000 -2.900000
# 75%    4.250000 -2.100000
# max    7.100000 -1.300000

タイタニック号データの集中運賃、親子の基本統計データをそれぞれ見てみましょう
'''                、                '''
print(text['  '].describe())
# count    891.000000
# mean      32.204208
# std       49.693429
# min        0.000000
# 25%        7.910400
# 50%       14.454200
# 75%       31.000000
# max      512.329200
# Name:   , dtype: float64
print(text['      '].describe())
# count    891.000000
# mean       0.381594
# std        0.806057
# min        0.000000
# 25%        0.000000
# 50%        0.000000
# 75%        0.000000
# max        6.000000
# Name:       , dtype: float64

[1]https://www.cnblogs.com/recoverableTi/p/13526941.html [2]https://blog.csdn.net/weixin_41903171/article/details/108053159 [3]https://nbviewer.jupyter.org/github/andongBlue/hands-on-data-analysis/blob/master/%E7%AC%AC%E4%B8%80%E5%8D%95%E5%85%83%E9%A1%B9%E7%9B%AE%E9%9B%86%E5%90%88/%E7%AC%AC%E4%B8%80%E7%AB%A0%EF%BC%9A%E7%AC%AC%E4%B8%89%E8%8A%82%E6%8E%A2%E7%B4%A2%E6%80%A7%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90.ipynb