Pandasは、Pythonのデータ操作および分析ソフトウェアパッケージです。Numpyに基づいて開発されているため、Pandasのデータ処理速度も非常に高速であり、Numpyの一部の機能も同様の方法でPandasで使用できます。
Pandasは、2つの新しいデータ構造をPythonにもたらします。つまり、Pandasシリーズ(テーブルの列に相当)とPandas DataFrame(テーブルに相当)です。これら2つのデータ構造により、ラベル付きデータとリレーショナルデータを簡単かつ直感的に処理できます。
pd.Series(data、index)コマンドを使用して、Pandasシリーズを作成できます。ここで、dataは入力データを表し、indexは対応するデータのインデックスです。さらに、パラメーターdtypeを追加して、列のデータタイプを設定することもできます。
python
import pandas as pd #従来の略語
pd.Series(data =[30,6,7,5], index =['eggs','apples','milk','bread'],dtype=float)
out:
eggs 30.0
apples 6.0
milk 7.0
bread 5.0
dtype: float64
リストの入力に加えて、データは辞書に入力することも、直接スカラーに入力することもできます。
python
pd.Series(data={'name':'michong','age':18})
out:
name michong
age 18
dtype: object
1つは、インデックスによるリストからのデータへのアクセスに似ており、もう1つは、キーによる辞書からの値へのアクセスに似ています。
python
s = pd.Series(data=8,index=['apple','milk','bread'])
s[0]
out:8
s['apple']
out:8
s.loc['apple']
s.iloc[1]
変更後に再割り当てすることを忘れないでください
python
s.drop(['apple'])
out:
milk 8
bread 8
dtype: int64
. drop()関数は元のデータを変更しません。元のデータを変更する場合は、パラメーターinplace = Trueを追加するか、s = s.drop(label)を元のデータに置き換えるかを選択できます。
python
s.drop(['apple'],inplace=True)
pd.DataFrame(data, index, columns)
python
dataはデータであり、ndarray、辞書(辞書にはSeriesまたは配列を含めることができます)、またはDataFrameを入力できます。
indexはインデックスです。リストを入力してください。このパラメーターが設定されていない場合、デフォルトで0からカウントダウンされます。
columnsは列の名前です。リストを入力してください。このパラメーターが設定されていない場合、デフォルトで0から右にカウントを開始します。
Code
d =[[1,2],[3,4]]
df = pd.DataFrame(data=d,index=['a','b'],columns=['one','two'])
df
out:
one two
a 12
b 34
df.loc['a'] df.iloc[0] out: one 1 two 2 Name: a, dtype: int64
python
df.loc[['a','b']]
df.iloc[[0,1]]
out:
one two
a 12
b 34
python
df.one
df['one']
df.iloc[:,0]
out:
a 1
b 3
Name: one, dtype: int64
python
df[['one','two']]
df.iloc[:,0:2] #0-2,3番目の列である2は含まれていません
out:
one two
a 12
b 34
python
df.iloc[0,1] #最初に行にアクセスし、次に列にアクセスします
df['two']['a'] #最初に列にアクセスし、次に行にアクセスします
out:2
.drop関数を使用して要素を削除します。デフォルトでは、行を削除し、パラメーターaxis = 1を追加して列を削除します。
python
df.drop(['a'])
out:
one two
b 34
python
df.drop('one',axis=1)
out:
two
a 2
b 4
== ドロップ機能は元のデータを変更しないことに注意してください。元のデータを直接変更する場合は、パラメーターinplace = Trueを追加するか、再割り当てして元の変数名に置き換えるかを選択できます。 ==
python
df.insert(2,'T',8) #新しい列を作成します。列名はTです。
out:
one two T
a 128
b 348
df.insert(2,'F',[9,10]) #列Fの下の各行の値を設定します
out:
one two F T
a 1298
b 34108
Code
data2 = pd.DataFrame([[8,9,10,11],[6,7,8,9]],
columns=['one','two','F','T'],index=['c','d'])
df.append(data2,ignore_index=True)
out:
one two F T
01298134108289101136789
df.rename(columns =( 'one': 'first column'))out:first column two F T a 1 2 9 8 b 3 4 10 8
python
df.rename(index={'a':'最初の行'})
out:
one two F T
最初の行1298
b 34108
Code
機能セットを使用できます_index(index_label)、データセットのインデックスをindexに設定します_label。
また、機能リセットを使用することもできます_index()データセットのインデックスを0にリセットして、カウントを開始します。
isnull()関数とnotnull()関数を使用して、データセットに欠落しているデータがあるかどうかを確認し、関数の後にsum()関数を追加して欠落している数を数えることができます。さらに、count()関数を使用して非NaNデータをカウントすることもできます。
== 元のデータを変更しないでください==
python
df.fillna(0)
out:01 F T one two
a 0.00.09.08.01.02.0
b 0.00.010.08.03.04.005.06.00.00.00.00.0
Code
fillnaを使用する()この関数は、NaNを特定の値に置き換えることができます。パラメータは次のとおりです。
value:NaNを置き換えるために使用される値
方法:一般的に使用される方法は2つあり、1つは充填順充填、もう1つは逆充填逆充填です。
軸:0は行、1は列
インプレース:元のデータを置き換えるかどうか、デフォルトはFalseです
制限:intタイプの入力を受け入れ、置換前にNaNの数を制限できます
python
# csvファイルを開く
pd.read_csv('filename')
# エクセルファイルを開く
pd.read_excel('filename')
# 中国語の文字を処理するTsvファイル
pd.read_csv('filename',sep ='\t',encoding ='utf-8')
python
# 最初の5行を表示
df.head()
# 最後の5行を表示
df.tail()
# ランダムな線を見る
df.sample()
python
# データセットの行と列の数を表示する
df.shape
# データセット情報の表示(列名、データタイプ、各列のデータ量-欠落しているデータを確認できます)
df.info()
# データセットの基本的な統計を表示する
df.describe()
# データセットの列名を表示する
df.columns
# データセットの不足しているデータを表示する
df.isnull().sum()
# 欠落している列データを表示する
df[df['col_name'].isnull()]
# データセットデータの複製を表示する
sum(df.duplicated())
# 重複データを表示
df[df.duplicated()]
# 列の分類統計を表示する
df['col_name'].value_counts()
# 列の一意の値を表示する
df['col_name'].unique()
# 列内の一意の値の数を表示する
df['col_name'].nunique()
# データセットを列で並べ替える
df.sort_values(by ='col_name',ascending = False)#Falseは、大きいものから小さいものへの意味
python
# 行をフェッチします
df.iloc[row_index]
df.loc['row_name']
# 数行を抽出します
df.iloc[row_index_1:row_index_2]
# 列を抽出する
df['col_name']
# 特定の列を抽出します
df[['col_name_1','col_name_2']]
# 行と列の値を抽出します
df.iloc[row_index,col_index]
df.loc['row_name','col_name']
# 列内の特定の条件を満たすデータをフィルタリングする
df[df['col_name']== value]#特定の値に等しいデータ、同様にすべての比較演算子を満たします
df.query('col_name == value')#コード効果は上記と同じです
df[(df['col_name_1']>= value_1)&(df['col_name_2']!= value_2)]#対&、または|
df.query('(col_name_1 >= value_lower) & (col_name_2 <= value_upper)')
df.groupby('col_name').groups #プレス列_グループ化とクラスタリングの名前列
python
# 行を削除する
df.drop(['row_name'],inplace = True)#インプレースで追加する場合=確かに、変更されたデータは元のデータを上書きします
# 列を削除する
df.drop(['col_name'],axis =1)
# 欠落値の処理
df.fillna(mean_value)#欠落している値を置き換える
df.dropna()#欠落している値を含む行を削除する
df.dropna(axis =1, how ='all')#データが欠落しているすべての列のみを削除します
# 重複する値を削除する
drop_duplicates(inplace = True)
# 行を変更する/カラム/位置データ
ilocまたはlocに直接置き換えて変更します
# データタイプの変更
df['datetime_col']= pd.to_datetime(df['datetime_col'])
df['col_name'].astype(str)#intにすることもできます/float...
# 列名を変更する
df.rename(columns={'A':'a','C':'c'}, inplace = True)
# 機能を適用する
# 列の関数アプリケーションについて話します_名前列、このメソッドはforループを使用するよりもはるかに高速です
df['col_name'].apply(function)
Recommended Posts