Python学習ノートのPandas基本操作(表)と図面
2841 ワード
pipを使用してPandasをインストールします.
Pandasパッケージをインポートし、別名pdを付けます.
DataFrame型データの作成:
series:インデックス付きクラス配列のデータ構造で、DataFrameの列として使用可能
csvファイルを読み込みます(表ファイル、一定のフォーマットがあり、xlsxファイルでも構いません):
操作データFrameデータ:
数学の統計:
欠落した値の処理:
関数の使用(ポイント):
データフレームデータをマトリクスに変換
Pandasは図面を持っています.
pip install pandas
Pandasパッケージをインポートし、別名pdを付けます.
import Pandas as pd
DataFrame型データの作成:
scores = {
'name' : ['johe', 'mike', 'tom', 'jeck'],
'sex' : ['male', 'female', 'male', 'male'],
'chinese' : [88, 83, 90, 78],
'math' : [96, 88, 86, 90],
'english' : [85, 80, 90, 75]
}
df = pd.DataFrame(scores) # index=[...]
series:インデックス付きクラス配列のデータ構造で、DataFrameの列として使用可能
df['computer'] = pd.Series([65, 70, 85, 90])
csvファイルを読み込みます(表ファイル、一定のフォーマットがあり、xlsxファイルでも構いません):
df = pd.read_csv('./form_test.csv') # csv , DataFrame
操作データFrameデータ:
df.index #
df.columns #
df.head(i) # i , 5
df.tail(i) # i
df.loc[i] # : ,
df.iloc[i] # :
df.ix[i] # loc iloc
df.ix[:i] # i ,
df[df.math>90] # 90
df[(df.english>80)&(df.math>90)] # : 80 90
df.drop(['english'], axis=1) #
df['english'] = [85, 80, 90, 75] #
df.sort_values(['math']) # : ,
df.values #
df.math.values #
df.T #
数学の統計:
df.describe() # ( 、 、 、 )
df.mean() #
df.var() #
df.sex.count_values() # ( )
df.groupby('chinese').sum() #
欠落した値の処理:
df.dropna() #
df.fillna(value=0) # , value
関数の使用(ポイント):
def f(score):
if score >= 90:
return ' '
elif score >= 60:
return ' '
else:
return ' '
df[' '] = df['math'].map(f) #
df[' '] = df.apply(lambda x: x.chinese+x.math+x.english, axis=1) #
df.applymap(lambda x: str(x)+' * ') #
データフレームデータをマトリクスに変換
df.as_matrix()
Pandasは図面を持っています.
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10, 4).cumsum(0), columns=['A', 'B', 'C', 'D']) #
df.plot() # pandas
plt.show() # matplotlib
df = pd.DataFrame(np.random.randint(10, 50, (3, 4)), columns=['A', 'B', 'C', 'D']) #
df.plot.bar() # pandas
plt.show()
df = pd.DataFrame(np.random.randn(100, 4), columns=['A', 'B', 'C', 'D']) #
df.hist() # pandas
plt.show()